引入了一个font-size:100%;又在后边设置了一个全局font-size,但是不知道为什么
前边的反而把后边的样式给覆盖了?
通配符选择器*
的权重值小于元素选择器。
可能你对 CSS 层叠机制的理解有误,CSS 层叠过程不是一上来就根据声明顺序决定该使用哪条声明的。
完整的 CSS 层叠过程是:
当声明冲突时,CSS 声明的层叠过程先看来源(origin)与重要性(importance),次看选择器的特殊性(specificity),实在不能判断就看声明顺序。
从 origin 与 importance 的角度,优先级从高到低:
- user !important
- author !important
- author
- user
- user agent
reset.css 与 common.css 都属于 3 author级别。胜负未分,接着判断选择器的特殊性。
元素选择器的特殊性为 0, 0, 0, 1
通配选择器的特殊性为 0, 0, 0, 0
在这一步 reset.css 中的元素选择器已经胜出了,所以应用 reset.css 中的样式,根本轮不到判断声明顺序。
所以自己写 common.css 时不要偷懒啊,不要使用通配选择符。
reset里面对特定标签设定了样式,而对特定标签设置的样式的优先级是要比 * 设置的要高的。。
写成html * {}
可以有效解决这一问题