css开发技巧(部分结合sass使用)

这篇具有很好参考价值的文章主要介绍了css开发技巧(部分结合sass使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

css 开发技巧

一、css 选择器


基础选择器

选择器 别名 说明 版本 常用
tag 标签选择器 指定类型的标签 1
#id ID 选择器 指定 id 的标签 1
.class 类选择器 指定类名的标签 1
* 通配选择器 所有类型的标签 2
div p 后代选择器 元素的所有后代元素 1
div>p 子代选择器 所有父级是 div 元素的 p 元素 2
div1+div2 相邻同胞选择器 div1 元素 后面相邻 的兄弟元素 div2 2
div~p 通用同胞选择器 div 元素 后面 的兄弟元素 p 3
div,p 并集选择器 所有 div 元素和 p 元素 1
div.class 交集选择器 指定类名的 div 元素 1

伪类选择器

选择器 说明 版本 常用
:not 非指定条件的元素 4
:active 鼠标激活的元素 1 ×
:hover 鼠标悬浮的元素 1
:link 未访问的链接元素 1 ×
:visited 已访问的链接元素 1 ×
:valid 输入合法的表单元素 3
:invalid 输入非法的表单元素 3
:checked 选项选中的表单元素 3
:disabled 事件禁用的表单元素 3
:focus-within 内部表单元素处于聚焦状态的元素 4
:placeholder-shown 确定元素是否显示占位符,可用于检查输入是否为空 4
input:placeholder-shown {
  border-color: pink;
}
input::placeholder {
  color: blue;
}
<!-- 没有占位符时,可以传空字符串使样式生效 -->
<input placeholder=" " />
<input placeholder="输入框" />

结构选择器

选择器 说明 版本 常用
p:empty 无子元素(或文本节点)的 p 元素 3
:nth-child(n) 元素中指定顺序的兄弟元素(n 为正数是向后找) 3
:nth-last-child(n) 元素中指定逆序的兄弟元素(n 为负数是向前找) 3 ×
:first-child 父元素中为首的子元素 2
:last-child 父元素中为尾的子元素 3
p:only-child 父元素(不包含 body)中仅有一个元素,且是元素 p 3
p:nth-of-type(n) p 标签中指定顺序的兄弟元素 3
p:nth-last-of-type(n) p 标签中指定逆序的兄弟元素 3 ×
p:first-of-type p 标签中为首的标签 3
p:last-of-type p 标签中为尾标签 3
p:only-of-type 父元素(包括 body)中元素 p 是唯一的,可以有不是 p 的兄弟元素 3
<div>
  <p>1111</p>
</div>
<div>
  <span>3333</span>
  <p>2222</p>
</div>

<p>444</p>
p:only-of-type {
  color: blue;
}

p:only-child {
  color: red;
}

属性选择器

选择器 说明 版本 常用
[attr] 指定属性的元素 2
[attr=val] 属性等于指定值的元素 2
[attr*=val] 属性含有指定值的元素 3
[attr^=val] 属性以指定值开头的元素 3
[attr$=val] 属性以指定值结尾的元素 3
/* [attr] 指定属性的元素 */
[title] {
    color: blue;
}

 /* [attr=val] 属性等于指定值的元素 */
// [title=one] {
//     color:red;
// }

/* [attr*=val] 属性含有指定值的元素*/
// [title*=one] {
//     color:green;
// }

/* [attr^=val] 属性以指定值开头的元素*/
// [title^=one] {
//     color:pink;
// }

/* [attr$=val] 属性以指定值结尾的元素*/
// [title$=one] {
//     color:orange;
// }
<div>
  <p title="one">111111</p>
  <p title="tow one">22222</p>
  <p title="oneeenn">33333</p>
  <p title="eeeoneen">44444</p>
  <p title="rrwwone">55555</p>
  <p title="two">66666</p>
</div>

伪元素选择器

选择器 说明 版本 常用
::before 在元素前插入的内容 2
::after 在元素后插入的内容 2
::placeholder 表单元素的占位 4

css 权重优先级:!important > 行内样式 > ID 选择器 > 类选择器(包括属性选择器、伪类) > 标签选择器 > 通配符* > 继承 > 浏览器默认属性

二、常见样式布局


居中布局

flex + margin

<div class="center-layout">
  <div></div>
</div>
.center-layout {
  display: flex;
  width: 400px;
  height: 400px;
  background-color: #f66;
  div {
    margin: auto;
    width: 100px;
    height: 100px;
    background-color: #66f;
  }
}

对齐两端文本

text-align-last 设置为 justify 实现文字两端对齐

<ul class="justify-text">
  <li>账号</li>
  <li>密码</li>
  <li>手机号</li>
  <li>电子邮件</li>
  <li>通讯地址</li>
</ul>
.justify-text {
  li {
    padding: 0 20px;
    width: 100px;
    height: 40px;
    background-color: #f66;
    line-height: 40px;
    text-align-last: justify;
    color: #fff;

    & ~ li {
      margin-top: 10px;
    }
  }
}

符号分割文字

:not()

<div data-title="使用:not()去除无用属性">
  <ul class="cleared-attr">
    <li class="first-line">
      <span>AAA</span>
      <span>BBB</span>
      <span>CCC</span>
      <span>DDD</span>
      <span>EEE</span>
    </li>
    <li class="second-line">
      <span>AAA</span>
      <span>BBB</span>
      <span>CCC</span>
      <span>DDD</span>
      <span>EEE</span>
    </li>
  </ul>
</div>
.cleared-attr {
  li {
    height: 40px;
    line-height: 40px;
  }

  span {
    display: inline-block;
    color: #66f;
    &:hover {
      text-decoration: underline;
    }
  }

  .first-line span:not(:last-child)::after {
    content: ',';
  }

  .second-line span:not(:nth-child(-n + 3)) {
    display: none;
  }
}

左右横向布局

margin 使用 flexbox 横向布局时,最后一个元素通过 margin-left:auto 实现向右对齐

<div class="bruce flex-ct-y" data-title="使用margin排版凸显布局">
  <div class="highlight-list left">
    <p>Alibaba</p>
    <p>Tencent</p>
    <p>Baidu</p>
    <p>Jingdong</p>
    <p>Ant</p>
    <p>Netease</p>
  </div>
  <div class="highlight-list right">
    <p>Alibaba</p>
    <p>Tencent</p>
    <p>Baidu</p>
    <p>Jingdong</p>
    <p>Ant</p>
    <p>Netease</p>
  </div>
</div>
.highlight-list {
  display: flex;
  align-items: center;
  padding: 0 10px;
  width: 600px;
  height: 60px;
  background-color: #3c9;

  & + .highlight-list {
    margin-top: 10px;
  }

  p {
    padding: 0 10px;
    height: 40px;
    background-color: #3c9;
    line-height: 40px;
    font-size: 16px;
    color: #fff;
  }

  &.left p {
    & ~ p {
      margin-left: 10px;
    }

    &:last-child {
      margin-left: auto;
    }
  }

  &.right p {
    & ~ p {
      margin-left: 10px;
    }

    &:first-child {
      margin-right: auto;
    }
  }
}

折叠面板

max-height

<div data-title="使用max-height切换自动高度">
  <ul class="auto-height">
    <li>
      <h3>列表1</h3>
      <p>内容1<br />内容2<br />内容3<br />内容4</p>
    </li>
    <li>
      <h3>列表2</h3>
      <p>内容1<br />内容2<br />内容3<br />内容4</p>
    </li>
    <li>
      <h3>列表3</h3>
      <p>内容1<br />内容2<br />内容3<br />内容4</p>
    </li>
  </ul>
</div>
.auto-height {
  width: 300px;

  li {
    cursor: pointer;
    & ~ li {
      margin-top: 5px;
    }

    &:hover p {
      border-bottom-width: 1px;
      max-height: 600px;
    }
  }

  h3 {
    padding: 0 20px;
    height: 40px;
    background-color: #f66;
    cursor: pointer;
    line-height: 40px;
    font-size: 16px;
    color: #fff;
    margin: 0;
  }

  p {
    overflow: hidden;
    padding: 0 20px;
    border: 1px solid #f66;
    border-top: none;
    border-bottom-width: 0px;
    max-height: 0;
    line-height: 30px;
    transition: all 500ms;
    margin: 0;
  }
}

自定义光标颜色

通过 caret-color 根据主题颜色自定义光标颜色

<div data-title="使用:valid和:invalid校验表单内容">
  <form class="form-validation">
    <div>
      <label>名字</label>
      <input
        type="text"
        placeholder="请输入你的名字(1到4个中文)"
        pattern="^[\u4e00-\u9fa5]{1,4}$"
        required
      />
    </div>
    <div>
      <label>手机号</label>
      <input type="text" placeholder="请输入你的手机号" pattern="^1[3456789]\d{9}$" required />
    </div>
    <div>
      <label>简介</label>
      <textarea></textarea>
    </div>
  </form>
</div>
.form-validation {
  width: 500px;

  div + div {
    margin-top: 10px;
  }

  label {
    display: block;
    padding-bottom: 5px;
    font-weight: bold;
    font-size: 16px;
  }

  input,
  textarea {
    display: block;
    padding: 0 20px;
    border: 1px solid #ccc;
    width: 100%;
    height: 40px;
    outline: none;
    caret-color: #09f;
    transition: all 300ms;

    &:focus:valid {
      border-color: #3c9;
    }

    &:invalid {
      border-color: #f66;
    }
    &:required {
      background-color: #eee;
    }
  }

  textarea {
    height: 122px;
    resize: none;
    line-height: 30px;
    font-size: 16px;
  }
}

绘制三角形

border

<div class="triangle"></div>
.triangle {
  border: 50px solid transparent;
  border-left-color: #f66;
  width: 0;
  height: 0;
}

自定义 title 提示框

attr + data-

<div class="hover-tips">
  <p data-name="中国红"></p>
  <p data-name="罗兰紫"></p>
  <p data-name="箩底橙"></p>
  <p data-name="姣婆蓝"></p>
  <p data-name="嫩叶青"></p>
  <p data-name="大地绿"></p>
</div>
$color-list: #f66 #66f #f90 #09f #9c3 #3c9;

.hover-tips {
  margin-top: 100px;
  display: flex;
  justify-content: space-between;
  width: 200px;

  p {
    position: relative;
    padding: 2px;
    border: 2px solid transparent;
    border-radius: 100%;
    width: 24px;
    height: 24px;
    background-clip: content-box;
    cursor: pointer;
    transition: all 300ms;

    &::before,
    &::after {
      position: absolute;
      left: 50%;
      bottom: 100%;
      opacity: 0;
      transform: translate3d(0, -30px, 0);
      transition: all 300ms;
    }

    &::before {
      margin: 0 0 12px -35px;
      border-radius: 5px;
      width: 70px;
      height: 30px;
      background-color: rgba(#000, 0.5);
      line-height: 30px;
      text-align: center;
      color: #fff;
      content: attr(data-name);
    }

    &::after {
      margin-left: -6px;
      border: 6px solid transparent;
      border-top-color: rgba(#000, 0.5);
      width: 0;
      height: 0;
      content: '';
    }

    @each $color in $color-list {
      $index: index($color-list, $color);

      &:nth-child(#{$index}) {
        background-color: $color;

        &:hover {
          border-color: $color;
        }
      }
    }

    &:hover {
      &::before,
      &::after {
        opacity: 1;
        transform: translate3d(0, 0, 0);
      }
    }
  }
}

迭代计数器

counter

<div data-title="迭代计数器">
  <div class="iterative-counter">
    <ul>
      <li>
        <input id="angular" type="checkbox" />
        <label for="angular">Angular</label>
      </li>
      <li>
        <input id="react" type="checkbox" />
        <label for="react">React</label>
      </li>
      <li>
        <input id="vue" type="checkbox" />
        <label for="vue">Vue</label>
      </li>
    </ul>
    <p class="count" data-unit="">框架:</p>
    <p class="weight" data-unit="%">权重:</p>
  </div>
</div>
.iterative-counter {
  ul {
    /* 定义计数器的递增量 */
    counter-reset: index 0 count 0 weight 0;
  }

  li {
    display: flex;
    position: relative;
    align-items: center;
    counter-increment: index 1;

    &::before {
      /* 调用计数器值 */
      content: counter(index) '、';
    }

    & + li {
      margin-top: 10px;
    }
  }

  input {
    overflow: hidden;
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;

    &:checked + label::before {
      color: #3c9;
      content: '\2713';
    }
  }

  label {
    display: flex;
    align-items: center;
    height: 20px;

    &::before {
      margin-right: 5px;
      border: 1px solid #3c9;
      width: 20px;
      height: 20px;
      cursor: pointer;
      line-height: 20px;
      text-align: center;
      color: transparent;
      content: '';
      transition: all 300ms;
    }
  }

  p {
    margin-top: 10px;

    &.count::after {
      /* 调用计数器值 */
      content: counter(count) attr(data-unit);
    }

    &.weight::after {
      /* 调用计数器值 */
      content: counter(weight) attr(data-unit);
    }
  }
}

#angular:checked {
  counter-increment: count 1 weight 20;
}

#react:checked {
  counter-increment: count 1 weight 50;
}

#vue:checked {
  counter-increment: count 1 weight 30;
}

内容滚动进度条

calc()

<div data-title="滚动指示器">
  <div class="scroll-indicator">
    <div>
      <article>
        <h1>2019中国互联网企业100强榜单</h1>
        <p>
          8月14日,中国互联网协会、工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在2019年中国互联网企业100强发布会暨百强企业高峰论坛上联合发布了2019年中国互联网企业100强榜单、互联网成长型企业20强榜单和《2019年中国互联网企业100强发展报告》。阿里巴巴(中国)有限公司、深圳市腾讯计算机系统有限责任公司、百度公司、京东集团、浙江蚂蚁小微金融服务集团股份有限公司、网易集团、美团点评、北京字节跳动科技有限公司、三六零安全科技股份有限公司、新浪公司位列榜单前十名。
        </p>
        <p>今年互联网百强企业聚焦创新引领、产业融合、工业互联网等方面,主要呈现出六大特点:</p>
        <p>
          一是整体规模跨越式提升,成为数字经济新引擎。2019年互联网百强企业互联网业务收入高达2.75万亿元,比2018年互联网百强企业互联网业务收入增长超过1万亿元,占我国数字经济的比重达8.8%,对数字经济的贡献率达14%,带动数字经济增长近2个百分点成为带动我国互联网产业发展的重要支撑。从互联网业务收入增长率分布看,有86家企业互联网业务收入实现增长。
        </p>
        <p>
          二是研发投入强度突破10%,打造中国核心技术。2019年互联网百强企业的研发投入达到1538.7亿元,同比增长45.1%,平均研发强度突破10%,比我国R&D经费投入强度高出近8个百分点。从研发强度分布看,有40家企业研发强度在10%以上,4家企业研发强度在30%-35%之间。互联网百强企业不断突破核心技术,互联网百强企业不断提升原始创新能力,加快推进5G、人工智能、云计算、大数据等关键核心技术突破,部分技术处于国际领先水平。2019年互联网百强企业已经拥有专利近8万项,其中发明专利数近6万项。2019年互联网百强企业中应用大数据企业29家,云计算28家,人工智能相关企业24家,运用物联网技术相关的企业3家。
        </p>
        <p>
          三是应用场景多元化,智能+打造生活消费新模式。互联网百强企业深化消费互联网发展,已对衣、食、住、行等各方面进行了全场景覆盖,业务涵盖互联网公共服务、网络媒体、音乐与视频、社交网络、科技创新与知识产权等17个领域,全方位提升了人民群众的生活、工作、文化、娱乐、教育等方面的生活质量。2019年互联网百强企业中从事电子商务的共18家;涉及互联网公共服务的共41家,主要提供信息查询、教育医疗、政务办理、公共出行等便民服务,让普通人民享受到“互联网+”带来的便利生活;21家企业涉及音乐与视频业务。同时,互联网百强企业积极发展智能产业,不断拓展“智能+”,创造了智慧门店、VR/AR试衣试妆、无感支付等丰富的新消费业态和场景,打造未来智能生活消费新模式。
        </p>
        <p>
          四是工业互联网入实践深耕,赋能传统产业高质量发展。互联网百强企业通过不断向各行各业“渗透”和“赋能”,推动云计算、大数据、物联网等信息通信技术与实体经济深入融合,培育新产业、新业态、新模式,支撑实体经济高质量发展。2019年互联网百强企业产业互联网数量再创新高,以服务实体经济客户为主的产业互联网领域企业数量达到60家,累计服务近4000万家企业。其中,涉及互联网数据服务41家,生产制造服务13家,科技创新和知识产权24家,B2B电商11家,互联网基础服务10家。
        </p>
        <p>
          五是“独角兽”
          企业快速增长,国际行业地位再创新高。2019年互联网百强企业及下属企业涌现出蚂蚁金服、字节跳动、京东数科、满帮集团、优刻得、找钢网等25家独角兽企业,同比增长38.9%,业务涉及金融科技、智慧物流、电子商务、新文娱等领域。从全球公司市值排名情况看,2018年,全球互联网公司市值前三十强中互联网百强企业占10家,其中,腾讯集团和阿里巴巴稳居全球互联网公司市值前十强。
        </p>
        <p>
          六是覆盖地域实现新扩展,网络扶贫取得新成效。2019年拥有互联网百强企业的省份达到18个,在2018年基础上新增江西和山东两个省份,地域覆盖不断增加。在区域分布上,东部地区互联网百强企业数量共86家,中西部地区互联网百强企业共12家,东北地区互联网百强企业数量保持2家。其中,安徽、贵州、河南、湖北、湖南、江西、重庆、四川8个中西部地区互联网百强企业数量不断增加,较去年增长1家。互联网百强企业积极践行企业社会责任,发挥互联网在助推脱贫攻坚中的作用,探索“直播+电商”等扶贫新模式,推进精准扶贫、精准脱贫。据统计,超过一半以上互联网百强企业参与网络扶贫。
        </p>
      </article>
    </div>
  </div>
</div>
.scroll-indicator {
  overflow: hidden;
  position: relative;
  border: 1px solid #66f;
  width: 500px;
  height: 300px;

  &::after {
    position: absolute;
    left: 0;
    right: 5px;
    top: 2px;
    bottom: 0;
    background-color: #fff;
    content: '';
  }

  div {
    overflow: auto;
    height: 100%;

    &::-webkit-scrollbar {
      width: 5px;
    }

    &::-webkit-scrollbar-track {
      background-color: #f0f0f0;
    }

    &::-webkit-scrollbar-thumb {
      border-radius: 2px;
      background-color: #66f;
    }
  }

  article {
    padding: 0 20px;
    background: linear-gradient(to right top, #f66 50%, #f0f0f0 50%) no-repeat;
    background-size: 100% calc(100% - 298px + 5px);

    > * {
      position: relative;
      z-index: 9;
    }
  }

  h1 {
    line-height: 40px;
    text-align: center;
    font-size: 20px;
  }

  p {
    margin-top: 20px;
    line-height: 20px;
    text-indent: 2em;
  }
}

圆角进度条

background + border-radius

<div data-title="圆角进度条">
  <div class="fillet-progressbar"></div>
</div>
@mixin progress-bar($width: 100px, $height: 10px, $color: #f66, $percent: 0) {
  border-radius: $height / 2;
  width: $width;
  height: $height;
  background-color: #ccc;
  background-image: radial-gradient(
      closest-side circle at $percent,
      $color,
      $color 100%,
      transparent
    ), linear-gradient($color, $color);
  background-repeat: no-repeat;
  background-size: 100%, $percent;
}
.fillet-progressbar {
  @include progress-bar(500px, 10px, #66f, 50%);
}

加载中…

animation

<div data-title="加载指示器">
  <div class="loading-indicator">加载中<span></span></div>
</div>
.loading-indicator {
  font-size: 16px;
  color: #09f;

  span {
    display: inline-block;
    overflow: hidden;
    height: 1em;
    line-height: 1;
    vertical-align: -0.25em;

    &::after {
      display: block;
      white-space: pre-wrap;
      /* \A 使content中的内容换行 */
      content: '...\A..\A.';
      /* step-start 使动画不连续*/
      /* both:该过渡方式会使动画的变化先快后慢,再慢后快 */
      animation: loading 3s infinite step-start both;
    }
  }
}

@keyframes loading {
  33% {
    /* translate3d(x,y,z) 分别代表要移动的轴的方向的距离 */
    // transform: translate3d(0, -2em, 0);
    transform: translateY(-2em);
  }

  66% {
    // transform: translate3d(0, -1em, 0);
    transform: translateY(-1em);
  }
}

三、拓展


标签导航栏

input + label

<div data-title="标签导航">
  <div class="tab-navbar">
    <input id="tab1" type="radio" name="tabs" hidden checked />
    <input id="tab2" type="radio" name="tabs" hidden />
    <input id="tab3" type="radio" name="tabs" hidden />
    <input id="tab4" type="radio" name="tabs" hidden />
    <nav>
      <label for="tab1">标题1</label>
      <label for="tab2">标题2</label>
      <label for="tab3">标题3</label>
      <label for="tab4">标题4</label>
    </nav>
    <main>
      <ul>
        <li>内容1</li>
        <li>内容2</li>
        <li>内容3</li>
        <li>内容4</li>
      </ul>
    </main>
  </div>
</div>
.active {
  background-color: #3c9;
  color: #fff;
}

.tab-navbar {
  display: flex;
  overflow: hidden;
  flex-direction: column-reverse;
  border-radius: 10px;
  width: 300px;
  height: 400px;

  input {
    &:nth-child(1):checked {
      & ~ nav label:nth-child(1) {
        @extend .active;
      }

      & ~ main ul {
        background-color: #f66;
        transform: translate3d(0, 0, 0);
      }
    }

    &:nth-child(2):checked {
      & ~ nav label:nth-child(2) {
        @extend .active;
      }

      & ~ main ul {
        background-color: #66f;
        transform: translate3d(-25%, 0, 0);
      }
    }

    &:nth-child(3):checked {
      & ~ nav label:nth-child(3) {
        @extend .active;
      }

      & ~ main ul {
        background-color: #f90;
        transform: translate3d(-50%, 0, 0);
      }
    }

    &:nth-child(4):checked {
      & ~ nav label:nth-child(4) {
        @extend .active;
      }

      & ~ main ul {
        background-color: #09f;
        transform: translate3d(-75%, 0, 0);
      }
    }
  }

  nav {
    display: flex;
    height: 40px;
    background-color: #f0f0f0;
    line-height: 40px;
    text-align: center;

    label {
      flex: 1;
      cursor: pointer;
      transition: all 300ms;
    }
  }

  main {
    flex: 1;

    ul {
      display: flex;
      flex-wrap: nowrap;
      width: 400%;
      height: 100%;
      transition: all 300ms;
      margin: 0;
    }

    li {
      display: flex;
      justify-content: center;
      align-items: center;
      flex: 1;
      font-weight: bold;
      font-size: 20px;
      color: #fff;
    }
  }
}

div 元素画各种图形文章来源地址https://www.toymoban.com/news/detail-498479.html

到了这里,关于css开发技巧(部分结合sass使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在vite+vue3项目中配置使用css预处理器(less/sass)以及路径别名

    vite已经将这些预处理器的loader内置了,我们不用再像在webpack项目中那样,需要下载和配置一堆相关的loader,我们只需要下载less,sass依赖,就能直接在项目中使用啦 使用npm或者yarn来安装以下依赖: Less预处理器: npm install -D less Sass预处理器: npm install -D sass 如图,下载之后

    2024年02月11日
    浏览(105)
  • Quartus 软件界面介绍与部分使用技巧

    内容太多,只能慢慢补充完善了~ 对一个软件的熟练掌握,不仅在于完成项目工程,还在于对一个软件的各个功能的位置与使用要熟稔于心(个人看法)。 默认打开的软件界面如下: 关掉所有能关闭的窗口,剩下的就是一个软件最基本的结构                       

    2024年01月17日
    浏览(35)
  • 记录下uniapp开发结合webview调用高德地图(路线规划,多路选择,双向通信)

    uniapp结合webview实现(微信和app上)简单版导航打车应用,总体实现方案是 在uniapp上嵌入web网页,在web网页上调用高德地图api实现渲染地图及路线 去高德开放平台注册账号并创建web应用,再生成web安全密钥和key 如果需要运行到微信上则需要开通微信公众平台上应用需要的定位

    2024年02月19日
    浏览(38)
  • Linux grep命令与$?命令结合使用技巧

    今天检查前同事留下的一个shell脚本时,其中一个脚本中有一个业务逻辑处理:要判断Oracle数据库实例是否启动,如果数据库实例处于OPEN状态的话,则执行/运行一些业务逻辑操作。脚本大体如下(脚本做了一下混淆和精简收缩) 其中chkdbup.sh脚本的内容如下: Review这个脚本时

    2024年02月15日
    浏览(49)
  • 【SQL开发实战技巧】系列(四十九):Oracle12C常用新特性☞表分区部分索引(Partial Indexes)

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2024年02月05日
    浏览(43)
  • 使用sass开发web-components组件

    思路:借助chokidar监听变化,将scss编译成css后插入 同时执行chokidar监听和webpack server

    2024年02月22日
    浏览(35)
  • 【web前端开发】CSS最常用的11种选择器

    CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。 CSS的作用:给HTML里面的标签设置样式 简单点来说就是让HTML的页面变得更加好看 CSS是写在 style 标签里面的,而st

    2023年04月09日
    浏览(41)
  • 【Css】Less和Sass的区别:

    一、定义: 【1】Less Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。Less 可以运行在 Node 或浏览器端。 【2】Sass Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌

    2024年02月10日
    浏览(44)
  • 前端-CSS预处理器Sass

    CSS预处理器Sass sass简介 使用vscode开发sass sass语法 scss语法 sass变量 sass嵌套 sass混合器 sass继承 sass操作符 sass函数 sass导入 sass作用域 sass条件语句 scss媒体查询和响应式设计 第三方的Sass函数和混合器库 Sass编译器 Sass模块

    2024年01月22日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包