css 中的 initial inherit unset 意思
写css时,在对属性进行选值,经常遇到unset , initial,inherit三个值。这几个值的含义。
1.inherit 可继承性
继承的意思。
每一个 CSS 属性都有一个特性就是,这个属性必然是默认继承的 (
inherited: Yes
) 或者是默认不继承的 (inherited: no
)其中之一,我们可以在 MDN 上通过这个索引查找,判断一个属性的是否继承特性。譬如,以
background-color
为例,由下图所示,表明它并不会继承父元素的background-color
:可继承属性
最后罗列一下默认为
inherited: Yes
的属性:- 所有元素可继承:visibility 和 cursor
- 内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction
- 块状元素可继承:text-indent和text-align
- 列表元素可继承:list-style、list-style-type、list-style-position、list-style-image
- 表格元素可继承:border-collapse
还有一些 inherit 的妙用,合理的运用 inherit 可以让我们的 CSS 代码更加符合 DRY(Don‘’t Repeat Yourself )原则。
2.initial 默认值
关键字用于设置 CSS 属性为它的默认值,可作用于任何 CSS 样式。(IE 不支持该关键字)unset 无设置(不设置)
名如其意,
unset
关键字我们可以简单理解为不设置。其实,它是关键字initial
和inherit
的组合。什么意思呢?也就是当我们给一个 CSS 属性设置了
unset
的话:- 如果该属性是默认继承属性,该值等同于
inherit
- 如果该属性是非继承属性,该值等同于
initial
举个例子,先列举一些 CSS 中默认继承父级样式的属性:
- 部分可继承样式:
font-size
,font-family
,color
,text-indent
- 部分不可继承样式:
border
,padding
,margin
,width
,height
使用
unset
继承父级样式:看看下面这个简单的结构:
1234<
div
class="father">
<
div
class="children">子级元素一</
div
>
<
div
class="children unset">子级元素二</
div
>
</
div
>
1234567891011121314.father {
color
:
red
;
border
:
1px
solid
black
;
}
.children {
color
:
green
;
border
:
1px
solid
blue
;
}
.unset {
color
: unset;
border
: unset;
}
由于
color
是可继承样式,设置了color: unset
的元素,最终表现为了父级的颜色red
。由于
border
是不可继承样式,设置了border: unset
的元素,最终表现为border: initial
,也就是默认 border 样式,无边框。
unset
的一些妙用例如下面这种情况,在我们的页面上有两个结构类似的
position: fixed
定位元素。区别是其中一个是
top:0; left: 0;
,另一个是top:0; right: 0;
。其他样式相同。假设样式结构如下:
1234<
div
class="container">
<
div
class="left">fixed-left</
div
>
<
div
class="right">fixed-right</
div
>
</
div
>
通常而言,样式如下:
123456789101112.
left
,
.
right
{
position
:
fixed
;
top
:
0
;
...
}
.
left
{
left
:
0
;
}
.
right
{
right
:
0
;
}
使用 unset 的方法:
1234567891011.
left
,
.
right
{
position
:
fixed
;
top
:
0
;
left
:
0
;
...
}
.
right
{
left
: unset;
right
:
0
;
}
- 如果该属性是默认继承属性,该值等同于
css 中的 initial inherit unset 意思的更多相关文章
- css样式关键字(initial,inherit,unset,revert,all)
关键字 在CSS中,有4个关键字理论上可以应用于任何的CSS属性,它们是initial(初始).inherit(继承).unset(未设置).revert(还原).而all的取值只能是以上这4个关键字 ...
- CSS 中的 initial、inherit、unset、revert
在css中,initial(初始).inherit(继承).unset(未设置).revert(还原)这四个关键字可以应用于所有的CSS属性. initial - 初始默认值.IE不支持 inheri ...
- CSS继承控制:inherit、initial和unset
CSS里有三种常用的属性值继承方式:inherit,initial和unset.我们用一个简单的例子来演示一下: <ul style="color: green;"> ...
- The inherit, initial, and unset values
The inherit, initial, and unset keywords are special values you can give to any CSS property. Tests ...
- CSS中的display属性(none,block,inline,inline-block,inherit)
css中的display属性(none,block,inline,inline-block,inherit) display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none bl ...
- CSS中inherit指定继承的使用方法和auto的区别
CSS中的每个属性都有一个特定值"inherit",其含义是指定继承父元素的相应属性,使用inherit一方面在代码上能地表明要继承于父元素的样式属性,另一方面也使子元素继承了那些 ...
- CSS中line-height继承问题
在CSS中,line-height属性用于设置多行元素的空间量,比如文本.对于块级元素,它指定元素行盒的最小高度.对于非替代的inline元素,它用于计算行盒的高度. 语法 /* Keyword va ...
- css中margin重叠和一些相关概念(包含块containing block、块级格式化上下文BFC、不可替换元素 non-replaced element、匿名盒Anonymous boxes )
平时在工作中,总是有一些元素之间的边距与设定的边距好像不一致的情况,一直没明白为什么,最近仔细研究了一下,发现里面有学问:垂直元素之间的margin有有互相重叠的情况:新建一个BFC后,会阻止元素与外 ...
- 深入理解css中vertical-align属性
一.为什么要写这篇文章 今天看到一个问题: 两个div 都设置 display:inline-block,正常显示:但是在第二个div中加一个块级元素或者内联元素,显示就变了个样,为什么? <m ...
随机推荐
- CentOS网卡显示为__tmpxxxxxxxx
一台服务器做了2组端口绑定(bonding),其中一组bond总是不成功,发现少了eth0/eth5 两个网卡,后来通过ifconfig -a 发现多了两个__tmpxxx的网卡 ifconfig - ...
- HTML 5 教程
HTML5 是下一代的 HTML.有必要再过一遍.看下要点. 具体看 http://www.w3school.com.cn/html5/index.asp 教程 和 HTML5 标签参考手册 ...
- vue2.0 学习 ,开始学习
先看官网的介绍上面的教程 https://cn.vuejs.org/v2/guide/ 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.你可以在浏览器新标签 ...
- input button 与 submit 的区别
在表单中,我们会经常提交数据,通常使用<input type="submit" value="提交"/>进行提交数据, 另一种方式是使用<bu ...
- Python实现冒泡,选择排序
def bubble(num): for i in range(len(num)-1): for j in range(len(num)-i-1): if(num[j]>num[j+1]): t ...
- [转]Apache的CRT格式SSL证书转换成IIS用的PFX格式
转自:http://www.getvm.net/apache-crt-ssl-convert-to-iis-pfx/ Apache使用的SSL证书是.crt格式,如果你的网站从Apache换到了win ...
- iOS设计模式 - 策略
iOS设计模式 - 策略 效果 说明 1. 把解决相同问题的算法抽象成策略(相同问题指的是输入参数相同,但根据算法不同输出参数会有差异) 2. 策略被封装在对象之中(是对象内容的一部分),策略改变的是 ...
- SpringMvc学习---基础知识考核
SpringMVC 1.SpringMVC的工作流程 流程 : 1.用户发送请求至前端控制器DispatcherServlet2.DispatcherServlet收到请求调用HandlerMappi ...
- MySQL 数据库--索引原理与慢查询优化
索引的原理 本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据. 索引的数据结构 b+ ...
- C/S架构的性能测试
很多人关心LR在C/S架构上如何实施性能测试,我想根本原因在于两个方面,一是很多时候脚本无法录制,即LR无法成功调用被测的应用程序,二是测试脚本即使录制下来,可读性不强,往往不能运行通过,调试时无从下 ...