CSS三大特性之优先级
来源:互联网 发布:网络经济时代的利与弊 编辑:程序博客网 时间:2024/05/29 13:50
优先级的顺序:行内样式>id选择器>类选择器>标签选择器>*通配符选择器>继承
有点晕,先看代码,例如有如下代码,运行后的字体颜色为红色,可以从行内样式依次进行屏蔽,就可以发现样式的优先级如上所述
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { /*通配符选择器*/ color: pink; } body { /*继承*/ color: green; } div { /*标签选择器*/ color: blue; } .d1 { /*类选择器*/ color: yellow; } #d2 { /*id选择器*/ color: purple; } </style></head><body> <!--行类样式--> <div style="color: red " class="d1" id="d2">优先级</div></body></html>
但是优先级有个变数就是important,它可以改变选择器的优先级,如果在某个样式后面添加了important后,该选择器的优先级就会最高,例如:还是如上代码,给类选择器添加important后,字体颜色就会变成黄色。</span>
.d1 { /*类选择器*/ color: yellow !important;}
但是important有一个特殊性,它用在继承上不起作用,因为属性无法继承。例如给body添加important,其它选择器不添加,最后字体的颜色还是红色。
body { /*继承选择器*/ color: green !important;}
接下来讲优先级的权重,
权重算法:(0, 0, 0, 0)
第一个0对应着important的个数,
第二个0对应着id选择器的个数
第三个0对应着类选择器的个数
第四个0对应着标签选择器的个数
比较方法:先从第一个0开始比较,如果第一个0大,那么说明这个选择器的权重高,如果第一个相同,则比较第二个,依此类推。
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> div div { /*(0, 0, 0, 2)*/ color: red; } div .son { /*(0, 0, 1, 1)*/ color: blue; } div #son {/*(0, 1, 0, 1)*/ color: pink; } .father div {/*(0, 0, 1, 1)*/ color: yellow; } .father .son {/*(0, 0, 2, 0)*/ color: green; } .father #son {/*(0, 1, 1, 0)*/ color: purple; } #father div {/*(0, 1, 0, 1)*/ color: gray; } </style></head><body><div class="father" id="father"> <div class="son" id="son">权重</div></div></body></html>
通过权重的算法我们可以很快的得知最后字体的颜色为紫色
如果给下面的样式添加了!important,则权重变成最高,字体颜色将为绿色
.father .son {/*(1, 0, 2, 0)*/ color: green !important;}
最后说一下选择器的工作原理
选择器在查找元素的时候不是从左往右找,而是从右往左找
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> /*从左往右找*/ div div { /*先找到一个子元素标签为div,然后再找这个元素是否有一个父元素标签也为div*/ color: red; } div { color: blue; } </style></head><body><div> 文字 <div> 文字 <div>文字</div> </div></div></body></html>结果显而易见是:蓝,红,红
1 0
- CSS三大特性之优先级
- CSS三大特性之优先级
- 0426-CSS三大特性之优先级
- css的三大特性(继承,层叠,优先级)
- CSS 三大特性: 继承性、层叠性、优先级
- css三大特性继承、层叠和优先级(权重)
- CSS三大特性继承性,层叠性,优先级
- css 的三大特性 继承,层叠,优先级
- CSS的三大特性——继承,层叠、优先级
- CSS的三大特性(继承,层叠,优先级)
- CSS三大特性之继承性
- CSS三大特性之层叠性
- CSS三大特性之继承性
- CSS三大特性之层叠性
- css三大特性
- css三大特性
- CSS三大特性
- css三大特性
- 倍增
- I,P,B帧和PTS,DTS的关系
- 输入输出流回头看
- Session是通过Cookie来传id的
- 青蛙的约会(扩展欧几里得)
- CSS三大特性之优先级
- 不算重零开始的java学习(一)
- HTML学习之翻页效果实现
- 程序员学习资料(3)—架构进阶、nodejs等书籍
- 极大似然估计和最大后验估计
- QDU 反转数字
- java 多线程详解二 买票示例
- leetcode:Spiral Matrix II
- 2016/08/30linux检测U盘热插拔并获取挂载点