搜索
首页web前端css教程SASS 中的 @extend 指令是什么?

SASS 中的 @extend 指令是什么?

SASS 允许开发人员编写更具可读性的代码并以更好的方式对其进行操作。它包含多个指令,例如@media、@content、@include、@mixin、@extend等,提供了一些功能,以便开发人员可以编写比普通CSS更好的代码。

在本教程中,我们将了解 SASS 中的 @directive。 @extend 指令允许开发人员扩展 CSS 代码。然而,mixin 也扩展了 CSS 代码并避免重复。 @extend 指令还允许我们避免代码的重复。

例如,如果应用程序的字体有一个通用的 CSS,并且每个地方都需要不同的字体大小,则可以扩展字体样式并添加自定义字体大小。这样就不需要写重复的代码了。

此外,开发人员可以使用@extend指令在CSS中实现继承,我们将通过示例来学习。

语法

用户可以按照以下语法在 SASS 中使用 @extend 指令。

selector {
   /* CSS code */
}
Another_CSS_selector {
   @extend selector;
   /* CSS code */
}

在上面的语法中,我们可以在“选择器”的声明块中编写常见的CSS。之后,我们可以在“Another_CSS_Selector”内部扩展选择器并添加自己的代码。

示例1(@extend指令的基本使用)

在下面的示例中,我们为具有“card”类名的 HTML 元素定义了一些样式。之后,我们为“small_card”和“large_Card”元素定义了 CSS。我们在两个选择器中使用了 @extend 指令来扩展“card”选择器的 CSS。此外,我们还在“small_card”和“large_card”选择器中包含了一些其他 CSS,例如宽度、高度等。

.card {
   background-color: aliceblue;
   color: green;
   border: 2px solid pink;
   border-radius: 1.4rem;
}
.small_card {
   @extend .card;
   width: 100px;
   height: 100px;
   margin: 5px;
   padding: 5px;
}
.large_card {
   @extend .card;
   width: 500px;
   height: 500px;
   margin: 10px;
   padding: 10px;
}

输出

在下面的输出中,我们可以观察到“card”选择器的样式应用于“small_card”和“large_card”选择器。额外的 CSS 也分别应用于两个选择器。

.card,
.small_card,
.large_card {
   background-color: aliceblue;
   color: green;
   border: 2px solid pink;
   border-radius: 1.4rem;
}
.small_card {
   width: 100px;
   height: 100px;
   margin: 5px;
   padding: 5px;
}
.large_card {
   width: 500px;
   height: 500px;
   margin: 10px;
   padding: 10px;
}

示例 2(使用 @extend 指令的继承链)

在下面的示例中,我们演示了如何使用 @extend 指令创建继承链。在这里,我们在“.first”选择器中添加了一些 CSS。之后,我们在“.second”选择器中扩展了“.first”选择器,并添加了一些额外的 CSS。

接下来,我们在“.third”选择器中扩展了“.second”选择器,在“.fourth”选择器中扩展了“.third”选择器。因此,这里我们使用不同的 CSS 选择器创建了继承链。

.first {
   width: 100px;
   height: auto;
}
.second {
   @extend .first;
   color: blue;
}
.third {
   @extend .second;
   background-color: pink;
   border: 2px dotted red;
}
.fourth {
   @extend .third;
   margin: 10px;
   padding: 1rem;
}

输出

下面的输出显示了当我们使用 @extend 指令创建继承链时,CSS 代码如何应用于不同的 CSS 选择器。

.first,
.second,
.third,
.fourth {
   width: 100px;
   height: auto;
}
.second,
.third,
.fourth {
   color: blue;
}
.third,
.fourth {
   background-color: pink;
   border: 2px dotted red;
}
.fourth {
   margin: 10px;
   padding: 1rem;
}

示例 3(使用 @extend 指令的多重继承)

在此示例中,我们演示了如何使用 @extend 指令来使用多重继承。多重继承的含义是单个选择器扩展了多个选择器。

在这里,我们定义了“.container”和“.main”CSS选择器并添加了一些CSS。之后,在“.element”CSS选择器内,我们扩展了“.container”和“.main”选择器。

.container {
   width: 500px;
   height: 500px;
   background-color: beige;
}
.main{
   color: pink;
   float: left;
   max-width: 600px;
   max-height: 700px;
   overflow: auto;
}
.element {
   @extend .main;
   @extend .container;
   padding: 2%;
}

输出

.container,
.element {
   width: 500px;
   height: 500px;
   background-color: beige;
}
.main,
.element {
   color: pink;
   float: left;
   max-width: 600px;
   max-height: 700px;
   overflow: auto;
}
.element {
   padding: 2%;
}

示例 4(在 @media 指令内使用 @extend 指令)

在下面的示例中,我们在 @media 指令中使用了 @extend 指令。但是,每当我们扩展 CSS 选择器时,SASS 编译器都会出错,该选择器是在 @media 指令的选择器内的 @media 指令之外定义的。

在这里,我们在@media指令中使用“.button”CSS选择器扩展了“.small_button”CSS选择器。用户可以观察到这里两个选择器都位于 @media 指令内。

@media small_screen {
   .button {
      width: 50%;
      clear: both;
      font-size: 1.3rem;
   }
   .small_button {
      @extend .button;
      @extend .main;
      height: 25%;
   }
}

输出

@media small_screen {
   .button,
   .small_button {
      width: 50%;
      clear: both;
      font-size: 1.3rem;
   }
   .small_button {
      height: 25%;
   }
}

示例 5(占位符选择器)

顾名思义,我们可以通过在选择器名称前添加 (%) 符号来创建占位符选择器。当我们编译SASS代码时,占位符选择器不会出现在输出代码中,但它的样式会在扩展的地方添加。

例如,我们在这里定义了“%container”占位符选择器。之后,我们在“small_container”和“medium_container”内部扩展了容器选择器。

在输出中,我们可以观察到它不包含“container”选择器,但“small_container”和“large_container”包含“container”占位符代码。

%container {
   color: red;
   background-color: green;
   padding: 3%;
   margin: 0 auto;
}
.small_container {
   @extend %container;
   width: 100px;
   height: 100px;
}
.medium_container {
   @extend %container;
   width: 300px;
   height: 300px;
}

输出

.small_container,
.medium_container {
   color: red;
   background-color: green;
   padding: 3%;
   margin: 0 auto;
}
.small_container {
   width: 100px;
   height: 100px;
}
.medium_container {
   width: 300px;
   height: 300px;
}

用户在本教程中学习了如何使用@extend指令。基本上,我们可以使用它来扩展样式表并避免代码的重复。另外,我们可以使用@extend指令在CSS中创建继承链。

以上是SASS 中的 @extend 指令是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:tutorialspoint。如有侵权,请联系admin@php.cn删除
每周平台新闻:Galaxy Store的Web应用程序,Tappable Stories,CSS Subgrid每周平台新闻:Galaxy Store的Web应用程序,Tappable Stories,CSS SubgridApr 14, 2025 am 11:20 AM

在本周的综述中:Firefox获得了类似锁匠的力量,三星的Galaxy Store开始支持Progressive Web Apps,CSS Subgrid正在Firefox发货

每周平台新闻:Internet Explorer模式,搜索控制台中的速度报告,限制通知提示每周平台新闻:Internet Explorer模式,搜索控制台中的速度报告,限制通知提示Apr 14, 2025 am 11:15 AM

在本周的综述中:Internet Explorer进入Edge,Google Search Console吹捧新的速度报告,Firefox提供了Facebook'

CSS自定义属性的范围的功率(和乐趣)CSS自定义属性的范围的功率(和乐趣)Apr 14, 2025 am 11:11 AM

您可能至少已经对CSS变量有点熟悉了。如果没有,这是两秒钟的概述:它们真的称为自定义属性

我们是程序员我们是程序员Apr 14, 2025 am 11:04 AM

构建网站正在编程。编写HTML和CSS正在编程。我是程序员,如果您在这里阅读CSS-Tricks,那么您很有可能是您

您如何从网站上删除未使用的CSS?您如何从网站上删除未使用的CSS?Apr 14, 2025 am 10:59 AM

在这里,我想预先知道的是:这是一个很难的问题。如果您降落在这里,因为您希望指向您可以运行的工具

图片中的图片网络API简介图片中的图片网络API简介Apr 14, 2025 am 10:57 AM

图片中的图片在2016年发行了Macos Sierra,在Safari浏览器中首次出现在网络上。这使用户可以弹出

使用Gatsby组织和准备图像以使图像模糊效果的方法使用Gatsby组织和准备图像以使图像模糊效果的方法Apr 14, 2025 am 10:56 AM

盖茨比(Gatsby)进行了出色的处理和处理图像。例如,它可以帮助您节省图像优化的时间,因为您不必手动

哦,嘿,填充百分比基于父元素的宽度哦,嘿,填充百分比基于父元素的宽度Apr 14, 2025 am 10:55 AM

今天,我学到了一些有关基于百分比的(%)填充的知识,我脑海中完全错了!我一直认为百分比填充是基于

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中