Home  >  Article  >  Web Front-end  >  对CSS选择器优先级(权重)的认识

对CSS选择器优先级(权重)的认识

WBOY
WBOYOriginal
2016-06-01 09:53:022095browse

为了说明css选择器优先级(权重),首先我们来看以下两个实例代码:

<code class="language-html"><style type="text/css"> 
div.ui_infor p {font-size: 16px;} 
.ui_infor p {font-size: 14px;} 
</style> </code>

 

<code class="language-html"><div class="ui_infor"> 
<p>test of css</p> 
</div> </code>

 

以上例子,最终的显示效果是 font-size: 16px,并不是后面的font-size: 14px; 
这种组合的选择器有快速方法判断: 
0,0,0,0 
第一位数值是代表写在标签上的样式,如 

<code class="language-html"><p style="font-size: 14px;"></p> </code>

第二位数值代表的是id选择器,如 #demo {} 
第三位数值是代表: 类名( .demo {} )或 伪类(:hover)或 属性选择器[rel=”xx”] 
第四位数值是代表:标签选择器 p {} 
现在用第一个例子来实践下: 

<code class="language-css">div.ui_infor p {font-size: 16px;} </code>

它的权重是:0,0,1,2 

<code class="language-css">.ui_infor p {font-size: 14px;} </code>

它的权重是:0,0,1,1 
结果:0,0,1,2 > 0,0,1,1,所以显示font-size: 16px; 
补充:! important权重是最高的,所以就不用判断了,但在IE-6浏览器中点BUG。 
例子: 

<code class="language-css">p {font-size: 18px !important;font-size: 12px;} 
</code>

在IE-6浏览器里面,是显示font-size: 12px,网上有些资料说IE-6不支持!important,其实是不对的。 
我们在看看例子: 

<code class="language-css">p {font-size: 18px !important;} 
p {font-size: 12px;} </code>

在IE-6中是显示font-size: 18px,这就说明了IE-6是支持!important,只是表现有点怪异,怪异的地方就是:写在同行的同名样式中 !important的属性被后面的覆盖, 
就如 p {font-size: 18px !important;font-size: 12px;} 这个例子,font-size: 12px覆盖了font-size: 18px !important。 
利用这个怪异,就可以在IE-6中,不使用CSS_hack,实现“min-height” 

<code class="language-css">p { min-height: 50px;height:auto !important;height:50px;} </code>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn