Что означает "&" перед псевдоэлементом в CSS?

В следующем CSS, взятом из Twitter Bootstrap, что означает символ амперсанда (&)?

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

Ответ 1

Это LESS, а не CSS.

Этот синтаксис позволяет вам вставлять модификаторы селектора гнезд.

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

Скомпилирует для:

.clearfix:before {
  content: '';
}

С помощью & вложенные селекторы скомпилируются в .clearfix:before.
Без него они компилируются в .clearfix :before.

Ответ 2

Вложенный & выбирает родительский элемент как в SASS, так и в LESS. Он не только для псевдоэлементов, он может использоваться с любым типом селектора.

например.

h1 {
    &.class {

    }
}

эквивалентно:

h1.class {

}

Ответ 3

In SCSS & LESS 

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

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


is Equal to in CSS :

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

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