Skip to content

scss 中的一些写法

父选择器&

&代表了父选择器的名字,字符串拼接也支持

scss
a {
  color: #333;
}
a:hover {
  color: red;
}

// 改进
a {
  color: #333;
  &:hover {
    color: red;
  }
}

属性嵌套

scss
.container a {
  color: #333;
  font-size: 14px;
  font-family: 'Courier New', Courier, monospace;
  font-weight: bold;
}

// 改进
.container a {
  color: #333;
  font: {
    size: 14px;
    family: 'Courier New', Courier, monospace;
    weight: bold;
  }
}

占位符(继承)

scss
.btn%base {
  display: inline;
  text-align: center;
  user-select: none;
}
.btn-default {
  @extend %base;
  color: #333;
  background-color: #fff;
}
.btn-success {
  @extend %base;
  color: #fff;
  background-color: greenyellow;
}
// 编译后的结果 相当于继承了公共样式
.btn.btn-default,
.btn.btn-success {
  display: inline;
  text-align: center;
  user-select: none;
}

.btn-default {
  color: #333;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: greenyellow;
}

变量

scss
// css3全局变量
:root {
  --color: skyblue;
}

// 仅这个选择器内部可用
body {
  --border-color: #f2f2f2;
}

p {
  color: var(--color);
  border-color: var(--border-color);
}

// scss中 定义在外部是全局变量,在选择器内部是局部变量
$color-primary: red;
.p {
  color: $color-primary;
}

导入

scss
// css3
@import url(文件名);
// scss
@import '文件名';

子组合选择器和同层组合选择器:>、+和~

scss
article > section {
  border: 1px solid #ccc;
}
// > 表示选中直接子类
scss
header + p {
  font-size: 1.1em;
}
// + 同层相邻组合选择器+选择header元素后紧跟的p元素
scss
header ~ p {
  font-size: 1.1em;
}
// ~ 同层全体组合选择器+选择header元素后所有的p元素

Released under the MIT License.