• CSS选择器的权值计算


    /*by 司徒正美 All rights reserve*/
    * {} /* a=0 b=0 c=0 d=0 -> specificity = 0,0,0,0 */
    /* 通配符选择器权重为0,在IE中,它无法区分元素节点与注释节点 */
    li {} /* a=0 b=0 c=0 d=1 -> specificity = 0,0,0,1 */
    /* 标签选择器为1 */
    li:first-line {} /* a=0 b=0 c=0 d=2 -> specificity = 0,0,0,2 */
    /* 标签选择器与伪元素为1 */
    ul li {} /* a=0 b=0 c=0 d=2 -> specificity = 0,0,0,2 */
    /*这里存在后代选择器的概念,但计算权重时像它这样的关系选择器会被进一步肢解,当成两个标签选择器了。*/
    ul ol+li {} /* a=0 b=0 c=0 d=3 -> specificity = 0,0,0,3 */
    /* 无视后代选择器与相邻选择器,只看它里面的选择器的成分 */
    h1 + *[rel=up]{} /* a=0 b=0 c=1 d=1 -> specificity = 0,0,1,1 */
    /* 这个相邻选择器由标签选择器与属性选择器组成,属性选择器为10 */
    ul ol li.red {} /* a=0 b=0 c=1 d=3 -> specificity = 0,0,1,3 */
    /*无视后代选择器,3个标签与1个类选择器,类(className)在DOM中的位置比较显赫,
    拥有专门的getElementByClassName,等级为c,合计得分13 */
    li.red.level {} /* a=0 b=0 c=2 d=1 -> specificity = 0,0,2,1 */
    /*两个类选择器与一个标签选择器,合计得分21 */
    #x34y {} /* a=0 b=1 c=0 d=0 -> specificity = 0,1,0,0 */
    /*getElementById,在页面上获得元素最快的方式,权重为b,得分100 */
    style="" /* a=1 b=0 c=0 d=0 -> specificity = 1,0,0,0 */
    /*行内样式,得分1000,会覆盖内部样式或外部样式的设置*/

     
    选择器表达式或示例说明权重
    ID选择器 #aaa   100
    类选择器 .aaa   10
    标签选择器 h1 元素的tagName 1
    属性选择器 [title] 详见这里 10
    相邻选择器 selecter + selecter 拆分为两个选择器再计算  
    兄长选择器 selecter ~ selecter 拆分为两个选择器再计算  
    亲子选择器 selecter > selecter 拆分为两个选择器再计算  
    后代选择器 selecter selecter 拆分为两个选择器再计算  
    通配符选择器 *   0
    各种伪类选择器 如:link, :visited, :hover, :active, :target, :root, :not等 10
    各种伪元素 如::first-letter,::first-line,::after,::before,::selection 1

  • 相关阅读:
    documentFragment文档碎片
    OpenResty之resty.limit.count 模块介绍
    vue前端分页多条件搜索
    element ui Tree树形控件获取未全选父节点和子节点id
    如何使 pdf 文件在浏览器里面直接下载而不是打开
    关于本博客
    圆锥曲线基础知识点
    NOI2021游记
    20210716模拟赛
    计数+动态规划
  • 原文地址:https://www.cnblogs.com/daxian2012/p/2593038.html
Copyright © 2020-2023  润新知