#### 1.5继承@extend
**sass中,选择器继承可以让选择器B继承另一个选择器A的*所有样式*,并联合声明。使用选择器的继承,要使用关键词@extend,后面紧跟需要继承的选择器。此需要写在选择器B里面,则编译成css的时候,联合声明时,B永远都在A后面**,
格式:@extend 要继承的选择器名称;
#### 1.5.1普通继承
列:scss样式:
~~~
.one {
width:100px;
height:100px;
}
.two {
@extend .one; //继承的样式
background:red;/*独立的样式*/
border:5px solid #000;
}
~~~
转化成css样式
~~~
.one, .two {
width: 100px;
height: 100px;
} //.two继承了.one的样式,并和.one联合声明
.two {
background: red;
border: 5px solid #000;
}
~~~
#### 1.5.2继承复杂的选择器
**注意:选择器继承书写没有顺序,可以先书写选择器B,写上@extend .A,然后在下面写上选择器A的样式,也可以**
列:scss样式
~~~
.hoverlink {
@extend a:hover;
}
a:hover {
text-decoration: underline;
}
~~~
转化成css样式
~~~
a:hover, .hoverlink {
text-decoration: underline;
}
~~~
#### 1.5.3继承多个选择器
**注意:1.即选择器B要多个选择器的样式,则书写一个@extend,后面书写选择器,选择之间用逗号`,`隔开,**
列:scss样式
~~~
.one {
width:100px;
height:100px;
}
.two {
/*继承的样式 选择器之间用逗号隔开了*/
@extend .one, .three;
/*独立的样式*/
background:red;
border:5px solid #000;
}
.three {
padding:10px;
}
~~~
转化成css样式
~~~
one, .two {
width: 100px;
height: 100px;
}
.two {
/*继承的样式*/
/*独立的样式*/
background: red;
border: 5px solid #000;
}
.three, .two {
padding: 10px;
}
~~~
**留意:**编译成css的顺序跟scss中one(A),two(B要继承的选择器),three(C)顺序有关,如ABC,则变成css则是AB,B,CB,如果是ACB,是变成css是AB,CB,C。如果是BAC,则变成css是B,AB,CB,如果是BCA,则变成css是B,CB,AB。
#### 1.5.4链型继承
**注意:即类名“.C”继承类名“.B”,而类名“.B”又继承了类名“.A”**
列:scss样式
~~~
.one {
width:100px;
height:100px;
}
.two {
/*继承的样式*/
@extend .one;
/*独立的样式*/
background:red;
border:5px solid #000;
}
.three {
/*继承的样式*/
@extend .two;
/*独立的样式*/
padding:10px;
}
~~~
转化成css样式
~~~
.one, .two, .three {
/*继承的样式*/
width: 100px;
height: 100px;
}
.two, .three {
/*独立的样式*/
background: red;
border: 5px solid #000;
}
.three {
/*独立的样式*/
padding: 10px;
}
~~~
#### 1.5.5继承的局限性
虽然能够继承的选择器数量很多,但是也有很多选择器并不被支持继承的,如包含选择器(.one .two)或者相邻兄弟选择器(.one+.two)目前还是不支持继承。但若继承的元素是“a”,恰巧这个元素“a”又有hover状态的样式,那么hover状态的样式也会被继承。
列:scss样式
~~~
.myLink {
@extend a;
}
a {
color: blue;
&:hover {
text-decoration: underline;
}
}
~~~
转化成css样式
~~~
a, .myLink {
color: blue;
}
a:hover, .myLink:hover {
text-decoration: underline;
}
~~~
- 布局
- display:table布局
- display:flex弹性布局
- html
- 1.1关于文字小技巧
- 1.2加载
- 1.3苹果和安卓样式兼容问题
- 1.4结构技巧
- 1.5兼容ie7,ie8技巧
- css
- 1.1内容不够,页面固定在底部
- 1.2 css属性书写顺序
- 1.3font和line-height之CSS代码书写顺序不同,导致显示效果不一样
- 1.4 flex设置成1和auto有什么区别
- 1.5带三角形的对话框
- 1.6css选择器
- 1.6.1通用兄弟选择器E ~ F
- 1.6.2相邻兄弟选择器E + F
- 1.6.3 CSS3结构选择器
- 1.6.4 属性选择器
- 1.6.7 class^=,class*= ,class$= 的含义
- 1.7伪类
- 1.7.1:not(s)
- 1.9inherit和 initial
- 2.0 css技巧
- css3
- 1.2 背景background
- 1.3 transform
- 1.3.1移动translate
- 1.3.2缩放scale
- 1.3.3旋转rotate
- 1.3.4扭曲skew
- 1.4 Transition
- 1.5 animate
- 1.6 calc()
- 1.7 Gradients渐变
- 1.8 backface-visibility
- 1.9 text-size-adjust
- sass知识点
- 1.1sass写法转化
- 1.1.1 sass的转换写法
- 1.2 & 嵌套写法
- 1.2变量
- 1.2.1 默认值
- 1.2.2 全局变量和局部变量
- 1.2.3 嵌套
- 1.2.4 伪类选择器
- 1.2.5变量用井号花括号包裹
- 1.2.6 多个变量一起声明
- 1.3混合宏
- 1.3.1不带参数的混合宏
- 1.3.2传一个不带值的参数
- 1.3.3传多个不带值的参数
- 1.3.4传一个参数的值
- 1.3.5传多个参数的值
- 1.3.6参数变量名后面加...(省略号)
- 1.4文件导入
- 1.5继承@extend
- 1.6占位符%
- 1.7混合宏VS继承VS占位符
- 1.8 @media在sass中写法
- 1.9 @content的作用
- sass基本运算
- 1.1[Sass运算]加法
- 1.2[Sass运算]减法
- 1.3[Sass运算]乘法
- 1.4[Sass运算]除法
- sass函数
- 1.1 @if函数
- 1.2for函数
- 1.3 while函数
- 1.4 each循环
- 函数
- 1.1一些函数的意思
- 1.2if else函数
- 1.3 i++和++i的区别
- 1.4for函数
- UI设计规则
- 1.1字体
- 1.2尺寸
- 1.3 注意点
- 1.4 界面设计注意点