美文网首页
继承,层叠,优先级

继承,层叠,优先级

作者: Caesar_emperor | 来源:发表于2021-11-16 09:08 被阅读0次

    一.层叠

    <!--跟样式的先后顺序有关系,这里字体将为14px-->
    <style type="text/css">
    div{font-size:12px;}
    div{font-size:14px;}
    </style>
    <div id="wrap"></div>
    

    二.继承

    <style type="text/css">
    body{font-size:12px;}
    </style>
    <!--定义body样式,这样全部body内的都会作用于该CSS样式-->
    <!--元素本身包含了冲突样式,一般会忽略继承性,对标签的直接设置优先级高于继承性-->
    <!--对于文字相关的,比如字号,行高等会继承-->
    

    2.1 继承失效

    父标签的颜色->a->继承失败(被浏览器默认样式覆盖)->只能对a单独赋值
    父标签的颜色->h->继承失败(被浏览器默认样式覆盖)->只能对h单独赋值
    div高度不能集成,宽度有类似继承效果,宽度和父元素一样宽

    三.优先级
    1.CSS样式的优先级
    不同位置的样式优先级也不同:

    行内(内嵌)样式>内部样式表>外部样式表(导入的CSS)

    2.CSS特殊性

    是指不同类型的选择器

    • 被继承的样式权重值为0(继承<通配符*<标签)
    • 标签选择器:权重值为1(0,0,0,1)
    • 伪元素或伪对象选择器:权重值为1(0,0,0,1)
    • 类选择器:权重值为10(0,0,1,0)
    • 属性选择器:权重值为10(0,0,1,0)
    • ID选择器:权重值为100(0,1,0,0)
    • 其它选择器:权重值为0,如通配选择器
      以上面权值数为起点来计算每个样式中选择器的总权值数,计算规则是
    • 统计ID选择器的个数,然后乘以100
    • 统计选择器中类选择器个数,然后乘以1
    • 统计选择其中标签选择器个数,然后乘以1
      以此类推,最后把所有权值数相加,即得到当前选择器的总权重值,最后根据权重值来决定哪个样式的优先级大。每个数字依次比较。
    <style type="text/css">
    body div#box{boder:solid 2px red;}
    #box{border:dashed 2px blue;}
    div.red{border:double 3px red;}
    </style>
    <div id="box" class="red">CSS</div>
    
    body div#box=1+1+100
    #box=100
    div.red=1+10
    div  h2=1+1
    .red=10
    

    在看优先级时,先看该样式选择器是否是继承的。如果id是继承下去的,那也要靠边站

    四.!important--只有在需要覆盖全站或外部 CSS 的特定页面中使用 !important

    <!--最高优先级,这里字体大小设置为13px-->
    <!--继承的优先级是最低的,!important依旧无法提升它的权重-->
    <style type="text/css">
            div{font-size: 13px !important; }
            div{font-size: 40px;}
    </style>
    </head>
    <body>
    <div>test</div>
    </body>
    

    相关文章

      网友评论

          本文标题:继承,层叠,优先级

          本文链接:https://www.haomeiwen.com/subject/yxpwrktx.html