WEB开发网
开发学院网页设计DivCss 深入了解CSS的继承性及其应用 阅读

深入了解CSS的继承性及其应用

 2008-03-09 11:35:29 来源:WEB开发网   
核心提示:P EM {color:purple;} 特性值为:2.apple {red;} 特性值为:10 P.bright {color:yellow;} 特性值为:11P.bright EM.dark {color:brown;} 特性值为:

  P EM {color:purple;}           特性值为:2
  .apple {red;}              特性值为:10 
  P.bright {color:yellow;}          特性值为:11
  P.bright EM.dark {color:brown;}      特性值为:22
  #id316 {color:yellow}          特性值为:100

从上表我们可以看出#id316具有更高的特殊性,因而它有更高的权重。当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。


  五、CSS继承的优先级问题

上面我们讨论了CSS的继承性和特殊性,在特殊性的框架下,被继承的特性值为0,这就意味着任何显示声明的规则将会覆盖其继承样式。因此,不管一条规则具有多高的权重,如果没有其他规则能应用于这个继承元素,那么它也只是个被继承的规则而已,举例说明。

样式定义:
  
BODY {background:black;}
  LI {color:gray;}
  UL.white {color:white}

  应用举例代码:
<ul>
  <li>举例列表一</li>
  <li>举例列表二</li>
  <li>举例列表三</li>
  <li>举例列表四</li>
</ul>

  应用举例效果:

有些读者可能认为除包含.white类的列表项显示为白色外,其余所有的列表项都应该是灰色的。然而情况并非如此。

为什么会出现这样的情况呢?因为带选择符LI的显式声明的权值比从UL.white规则那里继承过来的权值要大,所以每个列表项都是灰色的。

可能有些地方不是很好理解,大家多思考一下就会明白,平时在应用样式表的时候多留意思考一下。

下面我们再来看一个例子,若给定如下所示的标记,则EM强调文字将会是灰色的,而非黑色,因为EM规则的权值要大于从H1元素继承来的权值:

  样式定义:
  H1#id316 {color:black;}          特性值为:101
  EM {color:gray;}             特性值为:1

  应用举例代码:
  <H1 ID=”id316”>深入探讨<EM>CSS的继承性</EM></H1>

  应用举例效果

这是因为第二条EM规则的特性值(1)要比被继承的特性值(0)要大,事实上规定H1#id316的原始特性值(101)对其继承值没有影响,仍旧为0。

小技巧:

如果想让H1始终为黑色,而EM文字在其他情况下红色,那么下面的样式表设置就是一个很好的方法:

H1,H1 EM {color:black;}          特性值为:1,2
  EM {color:red;}              特性值为:1

给定这个规则后,除在H1元素内的任何EM文字就都是红色,而H1内的EM文字仍旧为黑色,由于其选择符分组,在第一条规则中就有两条有效的规则(一条是对H1的,另一条是对H1 EM的)也就有两个特性值——每条规则一个。

Tags:深入 了解 CSS

编辑录入:coldstar [复制链接] [打 印]
赞助商链接