加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Sass 中常见的选择器

发布时间:2023-05-25 13:47:25 所属栏目:教程 来源:
导读:父选择器是 Sass 中一种特殊的选择器,用于嵌套选择器中,用来引用外部的选择器;通俗的讲就是,当你使用嵌套的时候,可能你会需要使用到嵌套外层的父选择器,比如为一个元素 添加伪类 (hover、active、before、afte
父选择器是 Sass 中一种特殊的选择器,用于嵌套选择器中,用来引用外部的选择器;通俗的讲就是,当你使用嵌套的时候,可能你会需要使用到嵌套外层的父选择器,比如为一个元素 添加伪类 (hover、active、before、after) 的时候,可以用 & 代表嵌套规则外层的父选择器,我们举个例子来更直观的感受下:

a {
  &:hover {
    color:red;
  }
  &:active {
    color:blue;
  }
  &:before {
    content:'';
  }
  &:after {
    content:'';
  }
  span {
    &:hover {
      color:green;
    }
  }
}

在上面的 Sass 代码中我们编写了几个伪类,在编译的时候 & 将会被替换为嵌套外层的父选择器,有多层嵌套的话将会把父选择器一级一级的传递下去,最终转换为如下的 CSS 代码:

a:hover {
  color: red;
}
a:active {
  color: blue;
}
a:before {
  content: "";
}
a:after {
  content: "";
}
a span:hover {
  color: green;
}

添加后缀 (Adding Suffixes)

可以使用 & 向外部选择器添加后缀,举个例子看下:

.Box {
  width:100px;
  &-head {
    width:100%;
    &-title {
      color:red;
    }
  }
  &-body {
    width:;
  }
  &-footer {
    width:;
  }
}
上面这个例子将会转换为如下的 CSS 代码:

.Box {
  width: px;
}
.Box-head {
  width: ;
}
.Box-head-title {
  color: red;
}
.Box-body {
  width: ;
}
.Box-footer {
  width: ;
}

占位符选择器 (Placeholder Selectors)

在 Sass 中这是一种特殊的选择器,称为 "占位符";它以 % 开头,必须通过 @extend 指令调用,如果单独使用的话是不会编译到 CSS 中的,后面会讲到 @extend 指令,这里我们先举个简单的例子感受一下:

%placeholder {
  width:100px;
  height:100px;
  color:red;
  &:hover {
    color:blue;
  }
}
.btn {
  @extend %placeholder;
  font-size: px;
}
.btn2 {
  @extend %placeholder;
  font-size: px;
}
请记住,占位符必须通过 @extend 指令调用才会转换为如下的 CSS 代码:

.btn2, .btn {
  width: px;
  height: px;
  color: red;
}
.btn2:hover, .btn:hover {
  color: blue;
}
.btn {
  font-size: px;
}
.btn2 {
  font-size: px;
}

属性嵌套

当我们在写 CSS 样式的时候,有些 CSS 属性具有相同的命名空间 (namespace),比如定义字体样式的属性: font-size ; font-weight ; font-family ; 它们具有相同的命名空间 font 。再比如定义边框样式的属性:border-radius ; border-color ; 它们具有相同的命名空间 border 。当然还有很多其他这种的属性,为了方便管理和避免重复输入,Sass 允许将属性嵌套在命名空间中,同时命名空间也可以具有自己的属性值,我们举例看一下:

.Box {
  border: {
    radius: px;
    color:red;
  }
  font: {
   family:'YaHei';
   size:px;
   weight:;
  }
  margin: auto {
    bottom: px;
    top: px;
  };
}
上面这种写法将会被转换为如下的 CSS 代码:

.Box {
  border-radius: px;
  border-color: red;
  font-family: "YaHei";
  font-size: px;
  font-weight: ;
  margin: auto;
  margin-bottom: px;
  margin-top: px;
}

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章