CSS样式优先级判定

1、整体角度

行间样式>内嵌样式>外部样式

2、选择器角度

ID选择器>class类选择器>标签选择器

3、属性角度

相同属性后者>前者

4、继承和特殊性角度

解决问题:(多个样式应用于同一个标签的话,就要计算他们的权值,权值大的有优先权。)

继承是指被包在内部的标签拥有外部标签的样式性质。

特殊性描述了不同规则的相对权重

它的基本规则是:

    A统计选择符中的ID属性个数。 
    B统计选择符中的CLASS属性个数。 
    C统计选择符中的HTML标记名格式。


·如果CSS属性是通过 (X)HTML元素的style属性定义的,则记为a=1,否则记为0;

  由于style属性是写在(X)HTML标签内的,因此不存在选择器, 所以:a=1, b=0, c=0, 且 d=0;

·计算选择器中ID选择器的数量,计为b;

·计算选择器中类选择器、属性选择器和 伪类的数量,计为c;

·计算选择器中类型选择器的数量,计为d;

举例表示:

将这4个数字 (a, b, c, d)相连(数字进制要以大的为准),得到特殊性。例如: 

  { …… }         特殊性 = 0, 0, 0, 0(0000)
li { …… }         特 殊性 = 0, 0, 0, 1(0001)
ul li { …… }         特殊性 = 0, 0, 0, 2 (0002)
ul ol+li { …… }         特 殊性 = 0, 0, 0, 3 (0003)
h1 + [rel="up"] { …… }         特殊性 = 0, 0, 1, 1 (0011)
ul ol li.warning { …… }         特 殊性 = 0, 0, 1, 3 (0013)
li.menu.level { …… }         特殊性 = 0, 0, 2, 1(0021)
#x34y { …… }         特 殊性 = 0, 1, 0, 0 (0100)
<p styel=”……”>         特殊性 = 1, 0, 0, 0 (1000)

注意:

1、特殊性高的规则会取代特殊性低的规则,无论其书写的先后顺序如何。

2、要是一个样式被继承,不管他们的原先权值多大,继承后全部为0

5、实例:

(关注与li标签中  服- 颜色的变化)

样式:

<style>

.nav ul li{ float:left; line-height:24px; color:#6666FF;}  /* 0,0,1,2*/

.nav ul li ul li{float:none; color:#CC33FF; font-weight:bold;}  /*0,0,1,4*/

/*.subnav li{ font-size:14px; line-height:30px;color:#000;;}  /* 0,0,1,1*/

#subnav li{ font-size:14px; line-height:30px; float:none; color:#66CC33;} /* 0,1,0,1*/   

</style>

<div class="nav">

<ul>

 <li>-<a href="#">首 页</a></li>

 <li>-<a href="#">衬 衫</a>

<ul>

 <li style="float:none;">-<a href="#">短袖衬衫</a></li>

 <li style="float:none;">-<a href="#">长袖衬衫</a></li>

</ul>

</li>

<li>-<a href="#">卫 衣</a>

<ul  class="subnav">

 <li>-<a href="#">开襟卫衣</a></li>

 <li>-<a href="#">套头卫衣</a></li>

</ul>

 </li>

<li>-<a href="#">裤 子</a>

<ul id="subnav">

 <li>-<a href="#">休闲裤</a></li>

 <li>-<a href="#">卡其裤</a></li>

                   </ul>

         </li>

</ul>

</div>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值