zoukankan      html  css  js  c++  java
  • CSS权重

    CSS的权重指的是选择符的优先级,优先级高的CSS选择符所设置的样式会覆盖优先级低的选择符所设置的样式。权重越高优先级越高,计算权重有一定的规则。

    计算CSS权重首先需要了解CSS的6中选择器。

    1.ID选择器
        例如:
        #read_title{}
    2.类选择器
        例如:
        .read_title{}
    3.属性选择器
        例如:
        a[href='http://www.baidu.com']{}
    4.伪类和伪对象选择器
      例如:
      :hover {}
      ::after {}
    5.标签类型选择器
      例如:
      a {}
    6.通配选择器
      例如:
      * {}

    所有在CSS样式中定义的选择符都是由这6中选择器所构成。
    基础选择器的优先级:
    ID>类 | 伪类 | 属性选择器 >标签类型 | 伪对象 > 通配符
    
    
    

    CSS权重计算规则:
    (1)忽略全局选择器
    (2)计算选择符中ID选择器的数量(=a)
    (3)计算选择符中类选择器、属性选择器、伪类选择器的数量(=b)
    (4)计算标签类型选择器以及伪对象选择器的数量(=c)
    
    

    计算出a、b、c的值之后,按顺序连接a、b、c三个数字组成一个新的数值,这个数值越大,代表优先级越高。


    权重计算举例:

    *                 /*a=0,b=0,c=0 -> 权重 = 0*/
    li       /*a=0,b=0,c=1 -> 权重 = 1*/
    ul li       /*a=0,b=0,c=2 -> 权重 = 2*/
    ul ol+li       /*a=0,b=0,c=3 -> 权重 = 3*/
    h1 + *[REL=up] /*a=0,b=1,c=1 -> 权重 = 11*/
    ul ol li .red /*a=0,b=1,c=3 -> 权重 = 13*/
    li .red .level /*a=0,b=2,c=1 -> 权重 = 21*/
    #x34y /*a=1,b=0,c=0 -> 权重 = 100*/
    #s12:not(FOO) /*a=1,b=0,c=1 -> 权重 = 101*/

    如果选择符的权重相同,则采用就近原则来判断,最后定义的样式会被采用。

    如果要优化性能,则在定义CSS样式时需要使CSS权重相对较高,尽量不要使用层叠的选择器,多使用ID选择器。

    如果要提高CSS文件的重用性,则在定义CSS样式时需要使CSS权重相对较低,多使用类、属性、通配选择器。

     
  • 相关阅读:
    webrtc vp8与h264 sdp文件解读
    如何着手学习WebRTC开发(转)
    python第二次周末大作业
    python 面向对象(六)MRO C3算法 super
    python 面向对象(五)约束 异常处理 MD5 日志处理
    python 面向对象(经典作业讲解)
    python 面向对象(四)反射
    python 面向对象(三)类与类之间的关系 初始化方法一些类
    python 面向对象(二)成员
    python 面向对象(一)初识面向对象
  • 原文地址:https://www.cnblogs.com/DM428/p/7326733.html
Copyright © 2011-2022 走看看