Bootstrap CSS中伪元素前的“&”是什么意思?

wlzqhblo  于 2023-09-28  发布在  Bootstrap
关注(0)|答案(5)|浏览(148)

在下面的CSS中,取自Twitter Bootstrap的&字符是什么意思?

.clearfix {
  *zoom: 1;
  &:before,
  &:after {
    display: table;
    content: "";
  }
  &:after {
    clear: both;
  }
}
0sgqnhkj

0sgqnhkj1#

这是LESS,不是CSS。
此语法允许嵌套选择器修饰符。

.clearfix { 
  &:before {
    content: '';
  }
}

将编译为:

.clearfix:before {
  content: '';
}

使用&,嵌套的选择器编译为.clearfix:before
如果没有它,它们将编译为.clearfix :before

5f0d552i

5f0d552i2#

嵌套的&选择SASS和LESS中的父元素。它不仅适用于伪元素,还可以用于任何类型的选择器。
例如

h1 {
    &.class {

    }
}

相当于:

h1.class {

}
rks48beu

rks48beu3#

下面是一个SCSS/LESS示例:

a {
   text-decoration: underline; 
   @include padding(15px);
   display: inline-block;

     & img  {
                padding-left: 7px;
               margin-top: -4px;
             }
 }

在CSS中的等价物:

a {
  text-decoration: underline; 
  @include padding(15px);
  display: inline-block;
}

a img  {
     padding-left: 7px;
     margin-top: -4px;
   }
m1m5dgzv

m1m5dgzv4#

'&'在Sass和Less预处理器中都是有用的功能。是用来筑巢的。与CSS相比,它节省了时间。

bqjvbblv

bqjvbblv5#

父选择器&是Sass发明的一种特殊选择器,用于嵌套选择器中引用外部选择器。

  • 一种思考的方式是,每当在scss中遇到'&'时,它将在css中构建时被父选择器替换。

sass文档中的一个很好的例子是这样的。
Sass代码:

.alert {
  // The parent selector can be used to add pseudo-classes to the outer
  // selector.
  &:hover {
    font-weight: bold;
  }

  // It can also be used to style the outer selector in a certain context, such
  // as a body set to use a right-to-left language.
  [dir=rtl] & {
    margin-left: 0;
    margin-right: 10px;
  }

  // You can even use it as an argument to pseudo-class selectors.
  :not(&) {
    opacity: 0.8;
  }
}

会编译成这个CSS:

.alert:hover {
  font-weight: bold;
}
[dir=rtl] .alert {
  margin-left: 0;
  margin-right: 10px;
}
:not(.alert) {
  opacity: 0.8;
}

https://sass-lang.com/documentation/style-rules/parent-selector/

相关问题