css选择器的优先级比较

来源:互联网 发布:数据库考证 编辑:程序博客网 时间:2024/04/27 08:06

我们都知道css中有三大特性:

  • 继承
  • 层叠
  • 优先级

css的全称是Cascading Style Sheets,意思是层叠样式表,这里的层叠就重点的说了css的特性,如果两个选择器为同一个元素设置了相同的属性,它们会发生层叠。而层叠的样式又是由优先级来决定的。

这个优先级是个很值得探讨的问题。经过学习,我总结了一些优先级的判断方法。

  1. 如果是单个标签,那么优先级是这样的:

    !important > 行内样式 > id > class > 标签 > 通配符 > 继承 > 浏览器默认
    *这里要注意: !important 不能继承,只适用于当前标签。

  2. 如果是复合选择器 ,那么优先级的就要靠权重来计了。

    权重计算规则如下:
    第一等:代表内联样式,如: style=””,权值为1000。
    第二等:代表ID选择器,如:#content,权值为0100。
    第三等:代表类,伪类和属性选择器,如.content,权值为0010。
    第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
    通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
    继承的样式没有权值。

    是不是看起来有点晕。那么我们来总结一种简单一点的方法:

    看id, class和标签的数量(不看混合顺序,但一定要命中对应标签)。
    方法:先比id数,再比class数,最后再比标签数。
    规则:权重值:id > class > 标签

  3. 如果权重也一样,那么还遵从后面的覆盖前面的这个规则。
0 0
原创粉丝点击