Sass变量、嵌套、混和宏、继承、占位符
2017-09-05 13:34
183 查看
初次学习Sass,做下简单的总结。
1、全局变量和局部变量
$color : green;
span{
color: $color;//调用全局变量
}
div{
$color: red;
p{//选择器嵌套
color: $color;//调用局部变量
}
}
i{
color: $color;//调用全局变量
}
编译后
span {
color: green;
}
div p {
color: red;
}
i {
color: green;
}
2、嵌套(选择器嵌套、属性嵌套、伪类嵌套)
.box{
margin:{//属性嵌套(属性后加冒号,在大括号里写样式)
top: 5px;
bottom: 3px;
}
}
.wrap{
&:after{//伪类嵌套(用&符号进行连接 )
content: "";
display: block;
}
}编译后
.box {
margin-top: 5px;
margin-bottom: 3px;
}
.wrap:after {
content: "";
display: block;
}
3、混和宏,分为不传参数、传一个参数、传多个参数
用@mixin声明混和宏,用@include调用声明好的混和宏
@mixin center{//不传参数
text-align: center;
}
.sa{
@include center
}
@mixin center($center){//传一个参数
text-align: $center;
}
.sa{
@include center(center)
}编译后都是
.sa {
text-align: center;
}传多个参数可分两种情况,直接传指定个数的参数和“...”(我叫它省略参数)。
@mixin center($width,$height){//指定个数的参数
width: $width;
height: $height;
}
.sa{
@include center(500px,300px)
}编译后
.sa {
width: 500px;
height: 300px;
}省略参数
@mixin center($padding...){//特殊参数 ...
@if length($padding) >= 1{
padding: $padding;
}@else{
padding: 10px 5px;
}
}
.sa{
@include center(2px,3px)//满足else
}
.sub{
@include center //满足参数长度不大于等于1
}编译后
.sa {
padding: 2px, 3px;
}
.sub {
padding: 10px 5px;
}
4、继承
.btn, .sa {
border-radius: 5px;
}
#fl, .sa {
float: left;
}5、占位符,缺点很明显,不能合并
%fr{
float: right;
}
%block{
display: block;
}
.sa{
@extend %fr;
@extend %block;
}编译后
.sa {
float: right;
}
.sa {
display: block;
}
使用&符号,可合并具有相同属性的调用者
%fr{
float: right;
}
%block{
display: block;
}
.sub{
@extend %block;
&, span{
@extend %fr;
}
}
编译后
.sub, .sub span {
float: right;
}
.sub {
display: block;
}
1、全局变量和局部变量
$color : green;
span{
color: $color;//调用全局变量
}
div{
$color: red;
p{//选择器嵌套
color: $color;//调用局部变量
}
}
i{
color: $color;//调用全局变量
}
编译后
span {
color: green;
}
div p {
color: red;
}
i {
color: green;
}
2、嵌套(选择器嵌套、属性嵌套、伪类嵌套)
.box{
margin:{//属性嵌套(属性后加冒号,在大括号里写样式)
top: 5px;
bottom: 3px;
}
}
.wrap{
&:after{//伪类嵌套(用&符号进行连接 )
content: "";
display: block;
}
}编译后
.box {
margin-top: 5px;
margin-bottom: 3px;
}
.wrap:after {
content: "";
display: block;
}
3、混和宏,分为不传参数、传一个参数、传多个参数
用@mixin声明混和宏,用@include调用声明好的混和宏
@mixin center{//不传参数
text-align: center;
}
.sa{
@include center
}
@mixin center($center){//传一个参数
text-align: $center;
}
.sa{
@include center(center)
}编译后都是
.sa {
text-align: center;
}传多个参数可分两种情况,直接传指定个数的参数和“...”(我叫它省略参数)。
@mixin center($width,$height){//指定个数的参数
width: $width;
height: $height;
}
.sa{
@include center(500px,300px)
}编译后
.sa {
width: 500px;
height: 300px;
}省略参数
@mixin center($padding...){//特殊参数 ...
@if length($padding) >= 1{
padding: $padding;
}@else{
padding: 10px 5px;
}
}
.sa{
@include center(2px,3px)//满足else
}
.sub{
@include center //满足参数长度不大于等于1
}编译后
.sa {
padding: 2px, 3px;
}
.sub {
padding: 10px 5px;
}
4、继承
.btn{ border-radius: 5px; } #fl{ float: left; } .sa{ @extend .btn; @extend #fl; }编译后
.btn, .sa {
border-radius: 5px;
}
#fl, .sa {
float: left;
}5、占位符,缺点很明显,不能合并
%fr{
float: right;
}
%block{
display: block;
}
.sa{
@extend %fr;
@extend %block;
}编译后
.sa {
float: right;
}
.sa {
display: block;
}
使用&符号,可合并具有相同属性的调用者
%fr{
float: right;
}
%block{
display: block;
}
.sub{
@extend %block;
&, span{
@extend %fr;
}
}
编译后
.sub, .sub span {
float: right;
}
.sub {
display: block;
}
相关文章推荐
- sass中 混合宏 VS 继承 VS 占位符 各自的使用时机和特点
- Yii2.0实用功能技巧解密之——布局文件多变量继承(嵌套、引用)终极功能
- Sass变量、嵌套
- Yii2.0实用功能技巧解密之——布局文件多变量继承(嵌套、引用)终极功能
- sass 学习笔记(一):嵌套,变量,operation。。。基本就是翻译了一遍官网
- sass基础语法--嵌套与继承
- [Sass]混合宏 VS 继承 VS 占位符
- sass04 嵌套、继承、占位符
- 2.sass变量、嵌套、混合(mixin)、继承拓展、@import、comment
- Sass混合宏 VS 继承 VS 占位符的使用
- sass学习笔记(三):sass的变量及嵌套
- Sass之混合宏、继承、占位符
- Sass混合宏、继承、占位符
- SASS学习 - mixin、继承和占位符
- sass(混合宏vs继承vs占位符)
- 子类继承父类的同时又去实现一个成员变量、方法与父类相同的接口,最后调的是谁的成员变量和方法?
- Sass学习之路:注释、变量以及导入
- 类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器
- 全局变量,继承,虚函数,构造函数和析构函数的调用过程
- 关于python 的url_encode关于的嵌套字典类型变量的编码扩展