Sass @extend 和继承
Sass @extend 指令
@extend
指令允许您将一组 CSS 属性从一个选择器共享到另一个选择器。
如果您有几乎相同样式的元素,但仅在一些小细节上有所不同,则 @extend
指令很有用。
下面的 Sass 实例首先为按钮创建一个基本样式(此样式将用于大多数按钮)。然后,我们为 "Report" 按钮创建一种样式,为 "Submit" 按钮创建一种样式。"Report" 和 "Submit" 按钮都通过 @extend
指令继承了 .button-basic 类的所有 CSS 属性。此外,它们还定义了自己的颜色:
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 代码非常干燥(DRY)。