CSS--选择器的特殊性

CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算?

*   (1)、id选择器( # myid)
    (2)、类选择器(.myclassname)
    (3)、标签选择器(div, h1, p)
    (4)、相邻选择器(h1 + p)
    (5)、子选择器(ul < li)
    (6)、后代选择器(li a)
    (7)、通配符选择器( * )
    (8)、属性选择器(a[rel = "external"])
    (9)、伪类选择器(a: hover, li: nth - child)
*   可继承: font-size font-family color, ul li  dl  dd  dt;
*   不可继承 :border padding margin width height ;
*   优先级就近原则,样式定义最近者为准;
*   载入样式以最后载入的定位为准;

优先级为:
!important > id > class > tag
important 比 内联优先级高

一个选择器的具体特殊性如下确定:
- 对于选择器中给定的各个ID属性值,加0,1,0,0 。
- 对于选择器中给定的各个类属性值、属性选择或伪类,加0,0,1,0 。
- 对于选择器中给定的各个元素和伪元素,加0,0,0,1 。
- 结合符和通配符对特殊性没有任何贡献。
-
我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值。
4个等级的定义如下:
l 第一等:代表内联样式,如: style=””,权值为1000。
l 第二等:代表ID选择器,如:#content,权值为100。
l 第三等:代表类,伪类和属性选择器,如.content,权值为10。
l 第四等:代表类型选择器和伪元素选择器,如div p,权值为1。
注意:通用选择器(*),子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以他们的权值都为0。
这里写图片描述

<html>
#content div#main-content h2{
color:red;
 }
/*=2*100+2*1=202*/

#content #main-content>h2{
color:blue
 }
/*=2*100+1=201*/

body #content div[id="main-content"] h2{
color:green;
 }
/*=1*100+1*10+3*1=113*/

#main-content div.paragraph h2{
color:orange;
 }
/*=1*100+1*10+2*1=112*/

#main-content [class="paragraph"] h2{
color:yellow;
 }
/*=1*100+1*10+1*1=111*/

div#main-content div.paragraph h2.first{
color:pink;
}
/*=1*100+2*10+3*1=123*/
</html>

部分转自:http://www.jb51.net/css/37637.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值