Sass @extend 与 继承

Sass @extend 指令

@extend 指令让您可以多个选择器共享一组 CSS 属性。

如果您的元素样式几乎相同,但只是在一些小细节上有所不同,@extend 指令非常有用。

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

SCSS 语法:

  1. .button-basic {
  2. border: none;
  3. padding: 15px 30px;
  4. text-align: center;
  5. font-size: 16px;
  6. cursor: pointer;
  7. }
  8. .button-report {
  9. @extend .button-basic;
  10. background-color: red;
  11. }
  12. .button-submit {
  13. @extend .button-basic;
  14. background-color: green;
  15. color: white;
  16. }

在编译后,CSS 如下:

CSS 输出:

  1. .button-basic, .button-report, .button-submit {
  2. border: none;
  3. padding: 15px 30px;
  4. text-align: center;
  5. font-size: 16px;
  6. cursor: pointer;
  7. }
  8. .button-report {
  9. background-color: red;
  10. }
  11. .button-submit {
  12. background-color: green;
  13. color: white;
  14. }

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

@extend 指令有助于保持 Sass 代码非常 "干燥"(不重复)。