美文网首页
CSS三大特性

CSS三大特性

作者: potato865 | 来源:发表于2018-12-03 23:56 被阅读0次

    css层叠性

    所谓层叠性是指多种CSS样式的叠加:

    1.给一个标签设置的样式发生冲突的时候即样式的覆盖
    2.如果出现样式冲突,则会按照CSS书写的顺序,以最后的样式为准

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
           .one {
                color: hotpink;
                font-size: 30px;
            }
           .two {
                color: skyblue;
                font-size:40px;
            }
        </style>
    </head>
    <body>
        <div class="two one">文字内容</div>
    </body>
    </html>
    

    结果是:.two样式生效

    CSS继承性

    所谓继承性是指书写CSS样式表时,子标签会继承父标签的某些样式,如文本颜色和字号。想要设置一个可继承的属性,只需将它应用于父元素即可。

    与文字有关的属性都可以,实现继承:

    1.发生的前提是:标签之间属于一种嵌套关系
    2.文字颜色可以之间继承
    3.字体大小可以继承
    4.字体可以继承
    5.行高也可以实现继承

    特殊点:

    1.a标签超链接不能实现字体颜色的继承,字体大小可以继承
    2.h1不可以继承文字的大小,继承过来还会做一个计算

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            div{
                color: red;
                font-size: 30px;
            }
        </style>
    </head>
    <body>
        <div>
            <a href="">这是一个链接</a>
        </div>
    </body>
    </html>
    

    结果:a标签会继承div的样式

    CSS优先级

    定义CSS样式时,经常出现两个或更多规则应用在同一元素上,这时就会出现优先级的问题。

    关于CSS权重,我们需要一套计算公式来计算,这个就是CSS Specificity,我们称为CSS特性或称非凡性,它是一个衡量CSS值优先级的一个标准。具体规范如下:

    继承或者*的贡献值 0,0,0,0
    元素(标签)贡献值为 0,0,0,1
    类,伪类贡献值为 0,0,1,0
    ID贡献值为 0,1,0,0
    行内样式贡献值 1,0,0,0
    !important贡献值 ∞无穷大

    注意:

    1. 数位之间没有进制,比如说:0,0,0,5+0,0,0,5=0,0,0,10而不是0,0,1,0,所以不会存在10个div能赶上一个类选择器的情况。
    2. 继承的权重是0
    3. 权重相同时,CSS遵循就近原则

    总结:

    权重是优先级的算法,层叠是优先级的表现

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            ul li { /* ul 0001 li 0001 叠加 0,0,0,2*/
                color: green;
            }
            li { /*0,0,0,1*/
                color: red;
            }
            nav ul li { /*叠加之后的 0,0,0,3 权重大于红色绿色,执行蓝色*/
                color: blue;
            }
            .daohang ul li {/*叠加之后的 0,0,1,2 最终执行粉色*/
                color: pink;
            }
        </style>
    </head>
    <body>
        <nav class="daohang">
            <ul>
                <li>李白</li>
                <li>程咬金</li>
                <li>鲁班1号</li>
            </ul>
        </nav>
    
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:CSS三大特性

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