css选择器优先级深入理解

2020-05-02 08:25:19易采站长站整理


h1 + p{font-size:14px; background:#ccc; }

三、属性选择器说明:以下提到的E表示元素,attr表示属性,val表示属性的值
1.E[attr]选择器
匹配所有具有attr属性的E元素,不考虑它的值。如以下代码可以匹配所有含有title属性的p元素。


p[title]{font-size:12px; color:#666;}

2.E[attr=val]
匹配所有attr属性值为val的E元素。如匹配所有class值为test的p元素


p[class=”test”]{color:red;}

3.E[attr~=val]
匹配具有attr属性且属性值为用空格分隔的字符列表,其中一个值等于val的E元素。如:


p[class~=”name”]{font-size:12px; color:red;}


<div class=”test name”>111111</div><div class=”name”>111111</div>

则第一个div会应用上面的样式。
4.E[attr|=val]
匹配具有attr属性且属性值为用连接符分隔的字符串,并以val开头的E元素。


p[class|=”test”]{font-size:12px; color:red;}
<div class=”test”>111111</div><div class=”test-123″>111111</div>

则第二个div会应用上面的样式。
最后不得不提的是IE6不支持子选择器、同胞选择器和属性选择器,因此使用时需注意。
css优先级
优先级算是css中的一个非常重要的知识点,也是笔试面试中经常会考到的知识点。
一、什么是css优先级
css优先级,即是指CSS样式在浏览器中被解析的先后顺序。
二、css优先级规则
比较简单易记的一种方法就是给不同选择器分配不同的值:
1.id选择器默认优先级最高,其权值为100
2.class选择器、属性选择器和伪类选择器的权值为10
3.标签选择器的优先级较低,其权值为1
所以在比较样式的优先级时,只需统计选择符中的id、class、标签名个数,然后把对应的权值相加即可。根据结果便可得出优先级高低。
1.结果较大的优先级较高
2.结果相同,则后定义的样式优先级较高
3.如果样式值中含有!important,则该值优先级最高
举例


h2{color:blue;}//其权值为1
#content{color:#666;}//其权值为100p
.test{color:#ccc;}//其权值为1+10=11
#main div .test{color:red;}//其权值为100+1+10=111div
#main .left #nav{color:#000}//其权值为1+100+10+100=211