SASS - @extend(继承)指令
- SASS – 简介
- SASS – 环境搭建
- SASS – 使用Sass程序
- SASS – 语法
- SASS – 变量
- SASS- 局部文件(Partial)
- SASS – 混合(Mixin)
- SASS – @extend(继承)指令
- SASS – 操作符
- SASS – 函数
- SASS – 输出格式
@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]扩展/继承 继承对于了解 CSS 的同学来说一点都不陌生,先来看一张图: 图中代码显示".col-sub .block li,.col-extra .block li" ...
- 夺命雷公狗—angularjs—24—extend继承对象
我们的angularjs中也是给我们留下了方法来做继承的,那么他就是传授中的extend... 不过要如下所示,第二个参数是继承到第一个对象里面的... <!DOCTYPE html> & ...
- sass基础—继承及占位符
/*继承:@extend ,继承多个类时使用逗号隔开*/.alert{ color: #f00;}.info{ width: 100px;} .text-danger{ background-colo ...
- 【JavaScript】 使用extend继承对象的prototype方法
之前有学习过通过prototype模式来构造类,并通过prototype来添加方法.好处大概有以下几点: 1.类方法可以都放在prototype中,可以提高性能效率. 2.可以用prototype来实 ...
- Django extend(继承)模板标签
在 views.py 上修改 ... def ordered(req): return render(req, "ordered.html") def shopping_car(r ...
- SASS详解之沿袭(extend)
SASS详解之继承(extend) 每一个类名都有可能有另一个类名的所有样式和它自己的特定样式的.当一个div的身上有两个类名,一个是“one”,另一个是“two”的时候.如下 HTML代码 < ...
- css预编译语言 sass scss(变量$var, css嵌套规则,@import规则,@extend,@mixin)
什么是sass Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多功能, 并且完全兼容 CSS 语法. Sass 有助于保持大型样式 ...
- sass中 混合宏 VS 继承 VS 占位符 各自的使用时机和特点
初学者都常常纠结于这个问题“什么时候用混合宏,什么时候用继承,什么时候使用占位符?”其实他们各有各的优点与缺点,先来看看他们使用效果: a) Sass 中的混合宏使用 举例代码见 2-24 行 编译出 ...
- css编译工具Sass中混合宏,继承,占位符分别在什么时候使用
//SCSS中混合宏使用 @mixin mt($var){ margin-top: $var; } .block { @include mt(5px); span { display:block; @ ...
随机推荐
- 宏碁发布两款全A平台笔记本:良心价
导读 8月3日消息,在全球数码互动娱乐盛会ChinaJoy上,宏碁推出全新两款全A平台笔记本——暗影骑士4 锐龙版酷冷游戏本和蜂鸟Swift3锐龙版金属轻薄本. 此次发布的宏碁暗影骑士4 锐龙版笔记本 ...
- synchronized和锁(ReentrantLock) 区别
synchronized和锁(ReentrantLock) 区别 java的两种同步方式, Synchronized与ReentrantLock的区别 并发(一):理解可重入锁 可重入锁和不可重入锁 ...
- Thymeleaf(一)---引入js/css文件
th:href="@{/static/css/style.css}" th:src="@{/static/js/thymeleaf.js}" index.htm ...
- Spark 资料整理
http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ http://blog.csdn.net/aliv ...
- CSV用excel打开乱码
utf-8 csv 文件用 excel 打开乱码问题 其实这个问题很久之前遇到过, 应该是没解决, 当时的情况是openoffice打开正常而excel打开不正常, 后来也没解决了, 只能把编码转了. ...
- manjaro更换深度桌面 卸载ked桌面
下载需要的桌面环境 pacman -S deepin deepin-extra 修改/etc/lightdm/lightdm.conf sudo nano /etc/lightdm/lightdm.c ...
- URL短网址系统的算法设计及实践
在通常情况下,URL是由系统生成的,通常包括URI路径,多个查询参数,可以对参数进行加密和解密.当人们要分享某个URL,比如短信,邮件,社交媒体,这就需要短URL. 而短网址,顾名思义就是在长度上比较 ...
- 如何用hugo搭建个人博客
如何用hugo搭建个人博客 1. 安装 Hugo 点击跳转 Hugo Releases win10 步骤: 下载解压 , 然后添加环境变量 测试: #命令行测试 hugo version 2. 创建站 ...
- 小程序分享报错 Cannot read property 'apply' of null;at page XXX onShareAppMessage function
Cannot read property 'apply' of null;at page XXX onShareAppMessage function 然后看了下自己的代码,分享按钮在子组件里, at ...
- springcloud--ribbo(负载均衡)
ribbo:是Netflix公司开源的一个负载均衡的项目,是一个客户端负载均衡器,运行在客户端上. 实际运用案例(基于springcloud入门案例): 一.新建Module:springcloud- ...