0 Comments

CSS继承性及其应用详解(3)

发布于:2013-11-06  |   作者:广州网站建设  |   已聚集:人围观

五、CSS继承的优先级问题

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

样式定义: 


  1. BODY{background:black;}  
  2. LI{color:gray;}  
  3. UL.white{color:white}  
  4.  

应用举例代码: 


  1. <ul> 
  2. <li>举例列表一</li> 
  3. <li>举例列表二</li> 
  4. <li>举例列表三</li> 
  5. <li>举例列表四</li> 
  6. </ul> 
  7.  

应用举例效果:

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

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

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

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

样式定义:

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

应用举例代码:


  1. <H1IDH1ID=”id<?xml:namespaceprefixxml:namespaceprefix=st1/>316”> 
  2. 深入探讨<EM>CSS的继承性</EM></H1> 
  3.  

应用举例效果:

CSS继承

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

小技巧:

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

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

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

上面我们讨论了多个样式规则同时应用于同一对象时,哪个规则会被最终应用的一些情况,可能有些细心的读者会说,那STYLE元素呢?回答是这样的:带有STYLE的元素在CSS1下其特性值为100,尽管类似于#ID316这样的ID选择符的特性值也为100,但在实际应用中,STYLE这一权值会更高一些,因为STYLE元素的值看起来要比多数普通规则的权值大。所以我们可以看出内联样式具有高的特性值,具体的例子我们就不举了,大家可以自己试试。

标签:
飞机