这是一篇基础的文章,主要介绍css中的三大特性:css继承性、css层叠性、css优先级
一、css继承性
-
并不是所有的属性都可以继承, 只有以color/font-/text-/line-开头的属性才可以继承
-
在CSS的继承中不仅仅是儿子可以继承, 只要是后代都可以继承
-
继承性中的特殊性:1、a标签的文字颜色和下划线是不能继承的,2、h标签的文字大小是不能继承的
<style type="text/css">
#div1{
font-size: 16px;
color: #ff0;
border: #ddd solid 1px;
}
</style>
<div id="div1">
这是div1的内容
<div id="div2">
div1的后代div2中的内容
</div>
</div>
不可继承的:display、margin、border、padding、background、height、min-height、max-height、width、
min-width、max-width、overflow、position、left、right、top、bottom、z-index、float、clear、table-layout、
vertical-align、page-break-after、page-bread-before和unicode-bidi。
内联元素可继承: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。
二、css层叠性
<style type="text/css">
div{
background-color:#ff0;
}
.test{
width: 100px;
height: 100px;
border: 1px solid #666;
}
</style>
<div class="test"></div>
三、css优先级
1. 间接选中就是继承时,谁离目标标签近就听谁的。
2. 间接选中,谁离目标标签近就听谁的
3. 都是直接选中时,并且是同类型的选择器时,谁写在后面就听谁的。当是不同类型的选择器时,按照优先级: id>类>标签>通配符>继承>浏览器默认
关于通配符:
什么是优先级的权重?
权重的计算规则
首先先计算选择器中有多少个id, id多的选择器优先级最高
如果id的个数一样, 那么再看类名的个数, 类名个数多的优先级最高
如果类名的个数一样, 那么再看标签名称的个数, 标签名称个数多的优先级最高
如果id个数一样, 类名个数也一样, 标签名称个数也一样, 那么就不会继续往下计算了, 那么此时谁写在后面听谁的