特度和层叠

继承机制指元素的属性值被传递给它的后代。用户代理通过继承和特度决定应用哪些(样式)值被应用于元素,这个处理过程叫做*层叠.

本章三个机制:特度、继承和层叠。

特度

声明和特度

全局选择器特度

ID和属性选择器特度

行内样式特度

重要性

继承

层叠

按重要性和来源排序

按特度排序

按顺序排序

非CSS显示标识

总结

特度注意点

  • 特度优先级值 x,y,z,w 分别对应于
    • x:行内样式
    • y:ID 选择器
    • z:类、属性、伪类选择器
    • w:标签、伪元素选择器
    • 添加了 !important 标记的属性需单独考虑 -html 元素没有设置 background 属性但 body 元素设置了 background 时,body 的 background 属性会传递给 html 元素,继承机制的唯一例外
  • 尽量不要使用全局通配符 *,会破坏继承(被破坏的元素属性可使用值 inherit 修复)
  • 标签状态添加样式的建议顺序:link-visited-focus-hover-active LVFHA

元素应用样式的规则

  1. 找出所有选择器可以匹配此元素的规则
  2. 按照 explicit weight 排序所有声明,所有标记为 !important 的规则拥有更高的权重
  3. 按照样式来源排序所有声明,三个 origin:author、reader 和 user angent;绝大部分环境中 reader !important > author !important > author > reader > user agent
  4. 按照特度排序所有声明
  5. 按照样式表或文档中的位置排序所有声明,在后面的规则拥有更高权重。Import 的样式表插入在当前样式表的最前面

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""