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

WBOY
WBOYオリジナル
2016-06-01 09:53:022144ブラウズ

为了说明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>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。