首页 > 前边的reset.css样式把后边*设置的全局样式给覆盖了?

前边的reset.css样式把后边*设置的全局样式给覆盖了?

引入了一个font-size:100%;又在后边设置了一个全局font-size,但是不知道为什么
前边的反而把后边的样式给覆盖了?


通配符选择器*的权重值小于元素选择器。


可能你对 CSS 层叠机制的理解有误,CSS 层叠过程不是一上来就根据声明顺序决定该使用哪条声明的。

完整的 CSS 层叠过程是:
当声明冲突时,CSS 声明的层叠过程先看来源(origin)与重要性(importance),次看选择器的特殊性(specificity),实在不能判断就看声明顺序。

从 origin 与 importance 的角度,优先级从高到低:

  1. user !important
  2. author !important
  3. author
  4. user
  5. user agent

reset.css 与 common.css 都属于 3 author级别。胜负未分,接着判断选择器的特殊性。

元素选择器的特殊性为 0, 0, 0, 1
通配选择器的特殊性为 0, 0, 0, 0

在这一步 reset.css 中的元素选择器已经胜出了,所以应用 reset.css 中的样式,根本轮不到判断声明顺序。

所以自己写 common.css 时不要偷懒啊,不要使用通配选择符。


reset里面对特定标签设定了样式,而对特定标签设置的样式的优先级是要比 * 设置的要高的。。


写成html * {}可以有效解决这一问题

【热门文章】
【热门文章】