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权重相对较低,多使用类、属性、通配选择器。

     
  • 相关阅读:
    C# WinForm dataGridView 技巧小结
    Win7设置局域网共享
    vs2010快捷键大全
    C# WebBrowser.DocumentCompleted 多次调用解决方法
    为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制
    VB高清图标制作方法
    sqlite 中文排序
    一个vbs文件将指定文件夹下的文件名输出到指定文件夹下
    用DOS命令获取文件列表
    文件搜索神器 Everything
  • 原文地址:https://www.cnblogs.com/DM428/p/7326733.html
Copyright © 2011-2022 走看看