- Sass 教程
- Sass - 首页
- Sass - 概述
- Sass - 安装
- Sass - 语法
- 使用 Sass
- Sass - CSS 扩展
- Sass - 注释
- Sass - 脚本
- Sass - @规则和指令
- 控制指令和表达式
- Sass - Mixin 指令
- Sass - 函数指令
- Sass - 输出样式
- 扩展 Sass
- Sass 有用资源
- Sass - 面试问题
- Sass - 快速指南
- Sass - 有用资源
- Sass - 讨论
Sass - 扩展指令
描述
@extend 指令用于共享选择器之间的规则和关系。它可以将所有其他类样式扩展到一个类中,也可以应用其自身的特定样式。以下是扩展的类型:
类型和描述 | 语法 | 编译后的代码 |
---|---|---|
扩展复杂选择器 它可以扩展仅包含单个元素或类选择器的选择器。 |
h2 { font-size: 40px; } .container{ @extend h2 } |
h2, .container { font-size: 40px; } |
多个扩展 单个选择器可以扩展多个选择器。 |
.style { font-size: 25px; font-style: italic; } h2 { color: #61C8E1; } .container { @extend .style; @extend h2 } |
.style, .container { font-size: 25px; font-style: italic; } h2, .container { color: #61C8E1; } |
链式扩展 第一个选择器被第二个选择器扩展,第二个选择器被第三个选择器扩展,因此这被称为链式扩展。 |
.style { font-size: 25px; font-style: italic; } h2 { color: #61C8E1; @extend .style } .container { @extend h2 } |
.style, h2, .container { font-size: 25px; font-style: italic; } h2, .container { color: #61C8E1; } |
选择器序列 嵌套选择器本身可以使用@extend。 合并选择器序列 它合并两个序列,即一个序列扩展另一个序列,该序列存在于另一个序列中。 |
.style { font-size: 25px; font-style: italic; color: #61C8E1; } h2 .container { @extend .style } .container .style a { font-weight: bold; } #id .example { @extend a; } |
.style, h2 .container { font-size: 25px; font-style: italic; color: #61C8E1; } .container .style a, .container .style #id .example, #id .container .style .example { font-weight: bold; } |
@extend - 仅选择器 百分号字符 (%) 可用于任何 id 或类的位置,它可以防止其自身的规则集被渲染到 CSS 中。 |
.style a%extreme { font-size: 25px; font-style: italic; color: #61C8E1; } .container { @extend %extreme; } |
.style a.container { font-size: 25px; font-style: italic; color: #61C8E1; } |
!optional 标志 !optional 标志用于允许 @extend 不创建任何新的选择器。 |
h2.important { @extend .style !optional; } |
A blank compile page gets display. |
@extend 在指令中 如果在 @media 中使用 @extend,则它只能扩展存在于相同指令块中的选择器。 |
@media print { .style { font-size: 25px; font-style: italic; } .container { @extend .style; color: #61C8E1; } } |
@media print { .style, .container { font-size: 25px; font-style: italic; } .container { color: #61C8E1; } } |
示例
以下示例演示了在 SCSS 文件中使用 @extend:
extend.htm
<!doctype html> <head> <title>Extend Example</title> <link rel = "stylesheet" href = "extend.css" type = "text/css" /> </head> <body class = "container"> <h2>Example using Extend</h2> <p class = "style">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </body> </html>
接下来,创建文件 extend.scss。
extend.scss
.style{ font-size: 30px; font-style: italic; } h2{ color: #787878; @extend .style } .container{ @extend h2 }
可以使用以下命令告诉 Sass 监视文件并在 Sass 文件更改时更新 CSS:
sass --watch C:\ruby\lib\sass\extend.scss:extend.css
接下来,执行上述命令;它将自动创建 extend.css 文件,其中包含以下代码:
extend.css
.style, h2, .container { font-size: 30px; font-style: italic; } h2, .container { color: #787878; }
输出
让我们执行以下步骤来查看上述代码的工作方式:
将上述 html 代码保存在 **extend.html** 文件中。
在浏览器中打开此 HTML 文件,将显示如下所示的输出。
sass_rules_and_directives.htm
广告