父选择器()
嵌套非常适合将相关选择器放在一起,以便将来的开发人员更容易理解你的代码。由&符号(“&”)表示的父选择器可以在更复杂的情况下帮助执行此操作。有几种方法可以使用它。
通过将新选择器直接放在父选择器之后,创建一个新的选择器,该选择器同时需要父选择器和另一个选择器。
// SCSS
.parent {
  &.skin {
    background: pink;
  }
}
// CSS output
.parent.skin {
  background: pink;
}
通过将父选择器放在嵌套选择器之后,使父对象出现在已编译 CSS 中的嵌套选择器之后。
// SCSS
.parent {
  .wrapper & {
    border: 1px solid black;
  }
}
// CSS output
.wrapper .parent {
  border: 1px solid black;
}
国家和伪元素
除了为类和子元素使用嵌套之外,使用父选择器嵌套也常用于将:active,:hover 和:focus 的状态组合为链接。
// SCSS
a {
  color: blue;
  &:active,
  &:focus {
    color: red;
  }
  &:visited {
    color: purple;
  }
}
// CSS output
a {
  color: blue;
}
a:active,
a:focus {
  color: red;
}
a:visited {
  color: purple;
}
同样,你可以通过嵌套父选择器来设置伪元素的样式。
// SCSS
.parent {
  &::after {
    display: table;
    clear: both;
    content: '';
  }
  &::only-child {
    font-weight: bold;
  }
}
// CSS output
.parent::after {
  display: table;
  clear: both;
  content: '';
}
.parent::only-child {
  font-weight: bold;
}