[CSS] 级联与特异性

简介: 这篇内容介绍了CSS样式表的优先级规则。优先级由`!important`、选择器特异性(Specificity)和声明来源决定。特异性计算涉及ID、类和标签的数量,形成三元组进行比较。当特异性相同时,按代码顺序后规则覆盖前规则。建议避免过度使用`!important`以保持代码可维护性,并利用特异性解决优先级问题,作者样式表通常放在最后。

样式表IMPORTANCE比较

优先级由上往下递减,如果重要性一致,则对比选择器的特异性 Specificity,也叫“具体程度”.

  1. 用户声明的!important
  2. 作者声明的!important
  3. 作者样式表
  4. 用户样式表
  5. 浏览器默认样式表

特异性 Specificity

当有多条冲突的CSS规则指向同一元素,则浏览器会计算特异性选择更具体的规则。

如果特异性相同,则按照代码顺序,靠后的规则覆盖前面的规则。

特异性的计算

计算下面三种情况的数量,并形成一个三元数。

  1. IDs
  2. 类,伪类,属性
  3. 标签,伪元素

案例

  1. .button:(0, 1, 0)
  2. nav#nav div.pull-right .button:(1, 2, 2) 一个ID,两个类,两个标签
  3. a:(0, 0, 1) 仅一个标签
  4. #nav a.button:hover:(1, 2, 1)

优先级比较

从左往右比较,如果不同则直接得出优先级,如果相同则比较下一位。

(1,2,2)>(1,2,1)>(0,1,0)>(0,0,1)

如果均相同,则按照代码顺序决定。

级联与特异性总结

  • 使用!important标记的声明具有最高优先级;
  • 非必要不使用!important,因为它会导致代码可维护性很差;
  • 内联样式的优先级永远高于外部样式表;
  • 1个ID选择器的特异性高于包含1000个类的选择器;
  • 1个类选择器的特异性高于包含1000个元素的选择器;
  • 通配符 * 没有特异性,(0, 0, 0)
  • 应使用特异性解决问题(计算样式的优先级),而不是依赖代码的顺序;
  • 当使用第三方样式表的时候,最好将作者样式表置于最后。
相关文章
|
前端开发
CSS选择器优先级(特异性)
CSS选择器优先级(特异性)
103 0
CSS选择器优先级(特异性)
|
前端开发
CSS选择器优先级(特异性)
CSS选择器优先级(特异性)
71 0
CSS选择器优先级(特异性)
|
前端开发 容器
CSS选择器优先级(特异性)
CSS选择器优先级(特异性)
104 0
CSS选择器优先级(特异性)
|
前端开发
CSS选择器优先级(特异性)
CSS选择器优先级(特异性)
CSS选择器优先级(特异性)
|
前端开发
CSS选择器优先级(特异性)
CSS选择器优先级(特异性)
137 0
CSS选择器优先级(特异性)
|
8天前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
80 24
|
5月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
|
2月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
72 7
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
46 6

热门文章

最新文章