美文网首页
SASS - @extend(继承)指令

SASS - @extend(继承)指令

作者: 吴吃辣 | 来源:发表于2019-08-08 10:28 被阅读0次


@extend指令可以让一个CSS类继承另一个CSS类。

当多个元素之间共享一组属性值,同时又有各自额外属性值时,这种方法很有用。

举例说明

以警告框为例,警告框有4种类型:

  • info
  • success
  • error
  • warning

所有类型的警告框样式相同,但颜色不同。每个类型的警告框使用@extend指令继承一组公共属性,然后各自设置颜色值。

示例:

.alert {
  padding: 10px;
  background-color: silver;
  color: white;
}

.info {
  @extend .alert;
  background-color: dodgerblue;
}

.success {
  @extend .alert;
  background-color: green;
}

.error {
  @extend .alert;
  background-color: red;
}

.warning {
  @extend .alert;
  background-color: orange;
}

经过编译会输出以下css内容:

.alert, .info, .success, .error, .warning {
  padding: 10px;
  background-color: silver;
  color: white; }

.info {
  background-color: dodgerblue; }

.success {
  background-color: green; }

.error {
  background-color: red; }

.warning {
  background-color: orange; }

多个@extend

可以在选择器中使用多个@extend指令。

示例:

.alert {
  padding: 10px;
  background-color: silver;
  color: white;
}

.important {
  font-weight: bold;
  font-size: larger;
}

.important-error {
  @extend .alert;
  @extend .important;
  background-color: red;
}

经过编译会输出以下css内容:

.alert, .important-error {
  padding: 10px;
  background-color: silver;
  color: white; }

.important, .important-error {
  font-weight: bold;
  font-size: larger; }

.important-error {
  background-color: red; }

连锁 @extend

选择器可以连锁继承。

示例:

.alert {
  padding: 10px;
  background-color: silver;
  color: white;
}

.important {
  @extend .alert;
  font-weight: bold;
  font-size: larger;
}

.important-error {
  @extend .important;
  background-color: red;
}

经过编译会输出以下css内容:

.alert, .important, .important-error {
  padding: 10px;
  background-color: silver;
  color: white; }

.important, .important-error {
  font-weight: bold;
  font-size: larger; }

.important-error {
  background-color: red; }

占位符选择器

你可能发现被继承的css父类并没有被实际应用,也就是说html代码中没有使用该类,它的唯一目的就是扩展其他选择器。

对于该类,可能不希望被编译输出到最终的css文件中,它只会增加CSS文件的大小,永远不会被使用。

这就是占位符选择器的作用。

占位符选择器类似于类选择器,但是,它们不是以句点(.)开头,而是以百分号(%)开头。

当在Sass文件中使用占位符选择器时,它可以用于扩展其他选择器,但不会被编译成最终的CSS。

占位符选择器用法示例:

%alert {
  padding: 10px;
  background-color: silver;
  color: white;
}

.info {
  @extend %alert;
  background-color: dodgerblue;
}

.success {
  @extend %alert;
  background-color: green;
}

.error {
  @extend %alert;
  background-color: red;
}

.warning {
  @extend %alert;
  background-color: orange;
}

经过编译会输出以下css内容:

.info, .success, .error, .warning {
  padding: 10px;
  background-color: silver;
  color: white; }

.info {
  background-color: dodgerblue; }

.success {
  background-color: green; }

.error {
  background-color: red; }

.warning {
  background-color: orange; }

注意,编译后的CSS中不包含%alert选择器。

相关文章

  • SASS - @extend(继承)指令

    SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – SASS – 语法 SA...

  • Scss 基本使用 ( @extend、 @mixin、@imp

    继承( @extend )@extend 指令告诉 Sass 一个选择器的样式从另一选择器继承。如果一个样式与另外...

  • Sass 延伸

    本节我们学习 Sass 中的延伸,也可以理解为继承。在 Sass 中,我们可以通过 @extend 指令来实现将...

  • Sass 延伸

    本节我们学习 Sass 中的延伸,也可以理解为继承。在 Sass 中,我们可以通过 @extend 指令来实现将...

  • sass中的继承

    sass中的继承需要用到@extend这个关键字语法:@extend 需要继承的选择器 例:style.scss文...

  • 扩展/继承

    在 Sass 中也具有继承一说,也是继承类中的样式代码块。在 Sass 中是通过关键词 “@extend”来继承已...

  • Sass扩展/继承@extend

    % 占位符,%xx{}声明的代码,如果不被 @extend 调用的话,不会被编译

  • Stylus预处理器简介(十八)@EXTEND

    @EXTEND Stylus @extend指令的灵感来自于(本质上是一样的)SASS实现,只有很少的细微差别。该...

  • 6.Sass @extend 与 继承

    @extend 指令告诉 Sass 一个选择器的样式从另一选择器继承。如果一个样式与另外一个样式几乎相同,只有少量...

  • 八、sass - @extend样式继承

    在设计网页的时候常常遇到这种情况:一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式。通常会在 HTML...

网友评论

      本文标题:SASS - @extend(继承)指令

      本文链接:https://www.haomeiwen.com/subject/zaptjctx.html