前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS样式的优先级补遗2

CSS样式的优先级补遗2

作者头像
GhostZhang
发布2022-08-22 08:38:54
3220
发布2022-08-22 08:38:54
举报
文章被收录于专栏:CSS森林

CSS样式的优先级补遗2

Ghostzhang 发表于 2006-04-21 14:26

今天看到一篇《深入了解CSS的继承性及其应用》,文章中提到了CSS的特性值

样式表中的特殊性描述了不同规则的相对权重,它的基本规则是:

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

最后,按正确的顺序写出三个数字,不要加空格或逗号,得到一个三位数。( 注意,你需要将数字转换成一个以三个数字结尾的更大的数)。相应于选择符的最终数字列表可以很容易确定较高数字特性凌驾于较低数字的。 以下是一个按特性分类的选择符的列表: H1 {color:blue;} /* 特性值为:1 */ 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具有更高的特殊性,因而它有更高的权重。当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。

可能不太好理解,按照上面的权重顺序,先统计ID,再统计CLASS,再统计HTML标记。即:

代码语言:javascript
复制
H1 {color:blue;} /* 特性值为:1 */
P EM {color:purple;} /*特性值为:1+ 1=2 */
.apple {red;} /* 特性值为:10 */
P.bright {color:yellow;} /*特性值为:10+ 1=11 */
P.bright EM.dark {color:brown;} /*特性值为:10+10+1+ 1=22 */
#id316 {color:yellow} /* 特性值为:100 */

可以看出,HTML标记的权重是1,CLASS的权重是10,ID的权重是100。在文章中还提到了继承的权重为0。

文章中提到一个小技巧:

如果想让H1始终为黑色,而EM文字在其他情况下红色,那么下面的样式表设置就是一个很好的方法: H1,H1 EM {color:black;} 特性值为:1,2 EM {color:red;} 特性值为:1 给定这个规则后,除在H1元素内的任何EM文字就都是红色,而H1内的EM文字仍旧为黑色,由于其选择符分组,在第一条规则中就有两条有效的规则(一条是对H1的,另一条是对H1 EM的)也就有两个特性值——每条规则一个。

这个技巧很有意思,HTML是这样的:

代码语言:javascript
复制
<H1>黑色的H1<EM>黑色的EM</EM></H1>
<EM>红色的EM</EM>

也许你会说是不是跟上面的CSS样式顺序有关系呢?可以试试改成:

代码语言:javascript
复制
EM {color:red;} /* 特性值为:1 */
H1,H1 EM {color:black;} /* 特性值为:1,2  */

效果还是一样的。这也解释了为什么“包含选择符(E1 E2)”的优先级比“类型选择符(E)”要高。

这一点对于在写样式时是很有帮助的,比如我们可以在定义列表的时候用到:

代码语言:javascript
复制
ul{color:red;}
ul li{color:green;}
div ul{color:orange;}
div ul li{color:blue;} 

这样就可以在不用增加像“id=XX”、“class=xxx”等属性的情况下对标签进行分别定义了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2006-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CSS样式的优先级补遗2
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档