SASS 中的 @extend 继承使用技巧

在前端开发中,CSS 的样式表往往难以维护和重用。为了解决这个问题,SASS 提供了 @extend 继承选择器的功能,可以大大简化代码,并使用少量的 CSS 样式表达式创建灵活的样式。

@extend 的基本语法

SASS 的 @extend 继承选择器语法基于 SassScript 的函数调用语法。当需要从已有的 CSS 类继承某个或某些属性时,可以使用 @extend 选择器。例如:

上面的示例中,.page 类从 .content 类继承了其属性,最终生成的 CSS 如下:

继承使用的注意事项

选择器优先级

在使用 @extend 时,要注意选择器的优先级。@extend 的选择器不仅会继承其父级的属性,还会继承其选择器的优先级。如果父级选择器的优先级高于子级选择器的优先级,则 @extend 不会起作用。

例如:

最终生成的 CSS 是这样的:

只继承部分属性

有时候,只需要继承选择器中的部分属性,而不是全部属性。可以使用关键字 % 定义一个占位符选择器,并将其与实际的选择器 @extend。

例如:

最终生成的 CSS 如下:

避免重复定义

使用 @extend 时,要避免重复定义选择器,否则可能会产生意想不到的后果。

例如:

上面的代码中,.content 和 .page 均继承了 .content 的样式属性,实际上相当于将 .page 重复继承了一次,最终生成的 CSS 如下:

支持动态选择器

使用 @extend 时,可以使用动态选择器。

例如:

总结

使用 @extend 继承选择器可以大大简化代码,使用少量的 CSS 样式表达式创建灵活的样式。但是在使用的时候需要注意选择器优先级、只继承部分属性、避免重复定义以及支持动态选择器等方面,才能发挥 @extend 继承的最大优势。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65499d597d4982a6eb3d3331


纠错
反馈