Sass @extend和继承


Sass @extend 指令

这个@extend指令允许您将一组 CSS 属性从一个选择器共享到另一个选择器。

这个@extend如果您有几乎相同样式的元素,仅在一些小细节上有所不同,则该指令非常有用。

下面的 Sass 示例首先为按钮创建一个基本样式(该样式将用于大多数按钮)。然后,我们为 "Report" 按钮创建一种样式,为 "Submit" 按钮创建一种样式。 "Report" 和 "Submit" 按钮都通过 .button-basic 类继承了所有 CSS 属性@extend指示。此外,它们还定义了自己的颜色:

SCSS 语法:

.button-basic  {
  border: none;
  padding: 15px 30px;
  text-align: center;
  font-size: 16px;
  cursor: pointer;
}

.button-report  {
  @extend .button-basic;
  background-color: red;
}

.button-submit  {
  @extend .button-basic;
  background-color: green;
  color: white;
}

编译后,CSS 将如下所示:

CSS 输出:

.button-basic, .button-report, .button-submit {
  border: none;
  padding: 15px 30px;
  text-align: center;
  font-size: 16px;
  cursor: pointer;
}

.button-report  {
  background-color: red;
}

.button-submit  {
  background-color: green;
  color: white;
}

通过使用@extend指令中,您不需要为 HTML 代码中的元素指定多个类,如下所示:<button class="button-basic button-report">Report this</button>。您只需指定 .button-report 即可获取两组样式。

这个@extend指令有助于保持您的 Sass 代码非常干燥。