CSSCSS样式的优先级

Posted 厦门德仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSSCSS样式的优先级相关的知识,希望对你有一定的参考价值。

CSS样式的优先级

CSS样式的优先级

对于相同CSS起源来说,不同位置的样式其优先级也是不同的。一般来说,行内样式会优先于内嵌样式表,内部样式表会优先于外部样式表。而被附加了!important关键字的声明会拥有最高的优先级。
在实际开发中,如果作者设计网页字体颜色为14号黑色字体,而用户在浏览器里利用火狐浏览器的插件firebug修改页面字体为18号字体,那么浏览器该如何处理呢?
根据CSS层叠规则:作者设计的样式能够覆盖浏览器默认设置的样式,而用户在浏览器设置的样式可以覆盖作者的样式。同时,CSS根据样式的远近关系来决定层叠样式的优先级:在同等条件下,距离运用对象的距离越近就有较大的优先权,因而行内样式大于内部样式和外部样式。

如果多个不同类型的选择器同时为一个对象设置样式,该对象将如何显示最终样式呢?以下给出一个简单的计算方法。对于常规选择器,它们都拥有一个优先级加权值

  • 标签选择器:优先级加权值为1
  • 伪元素或伪对象选择器:优先级加权值为1
  • 类选择器:优先级加权值为10
  • 属性选择器:优先级加权值为10
  • ID选择器:优先级加权值为100
  • 其他选择器:优先级加权值为0,如通配选择器等
    然后,以下面加权值数为起点来计算每个样式中选择器的总加权值数。计算的规则是:
  • 统计选择器中ID选择器的个数,然后乘以100
  • 统计选择器中类选择器的个数,然后乘以10
  • 统计选择器中的标签选择器的个数,然后乘以1

以此方法类推,最后把所哟有加权值数相加,即可得到当前选择器的总加权值,最后根据加权值来决定哪个样式的优先级大
对于由多个选择器组合而成的复合选择器,首先分别计算每个组成选择器的加权值,接着相加得出当前选择器的总分,最后根据选择器的分值大小,分值越高则优先级越高,那么就将应用它所设置的样式,如果分值相同,则根据位置关系来判断,越靠越近对象的样式就拥有越高的优先级。

            h3color: #ff7300;                        /*加权值=1分 */
            .f14font-size: 14px;                       /*加权值=10分 */
            #headwidth: 960px;                         /*加权值=100分 */
            h3 .f14font-weight: bold;                  /*加权值=1分+10分=11分 */
            #head h2border: 1px solid #ff73;         /*加权值=100分+1分=101分 */
            div ppadding: 0 10px;                      /*加权值=1分+1分=2分 */
            div #headmargin: 0 auto;                   /*加权值=1分+100分=101分 */
            #head h2 spanfloat: right;                 /*加权值=100分+1分+1分=102分 */
            #head .f14 emfloat: right;                 /*加权值=100分+10分+1分=111分 */
            #head .f14 span emfloat: right;            /*加权值=100分+10分+1分+1分=112分 */
            #head div h2 .f12 span emcolor: #000;    /*加权值=100分+1分+1分+10分+1分+1分=114分 */

以上是关于CSSCSS样式的优先级的主要内容,如果未能解决你的问题,请参考以下文章

CSSCSS三大特性

CSSCSS 特性 ③ ( CSS 优先级 | 优先级引入 | 选择器基本权重 )

CSS基础

前端随堂笔录3

CSSCSS 层叠样式表 ② ( CSS 引入方式 - 内嵌样式 )

CSSCSS 特性 ① ( CSS 层叠性 | 样式冲突 | 就近原则选择样式 )