【问题标题】:What does an "&" before a pseudo element in CSS mean?CSS中伪元素前的“&”是什么意思?
【发布时间】:2012-11-16 12:39:28
【问题描述】:

在以下取自 Twitter Bootstrap 的 CSS 中,和号 (&) 字符是什么意思?

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

【问题讨论】:

  • 在 Sass 和 Less 中,& 是对父选择器的引用。

标签: css twitter-bootstrap sass less


【解决方案1】:

那是LESS,不是 CSS。

此语法允许您嵌套选择器修饰符。

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

将编译为:

.clearfix:before {
  content: '';
}

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

【讨论】:

  • @KatieK:Bootstrap 是用 LESS 编写的,而不是 SASS
【解决方案2】:

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

例如

h1 {
    &.class {

    }
}

相当于:

h1.class {

}

【讨论】:

    【解决方案3】:

    这是一个 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;
       }
    

    【讨论】:

      【解决方案4】:

      '&' 在 Sass 和 Less 预处理器中都是有用的功能。用于嵌套。与 CSS 相比,它更节省时间。

      【讨论】:

        猜你喜欢
        • 2017-05-07
        • 2017-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        相关资源
        最近更新 更多