CSS篇-CSS三大特性

作者: TianTianBaby223 | 来源:发表于2018-07-15 15:18 被阅读8次

    一 : 层叠性

    浏览器处理冲突的一种能力,以CSS的书写顺序,以下面的样式为准.
    类似英语的就近原则
    总结一 : 样式冲突遵循就近原则,哪个样式离着结构近,就执行哪个样式

    但字体不会被覆盖还是25px
    总结二 : 样式不冲突,不会层叠

    示例代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        div {
            color: red;
            font-size: 25px;
        }
        div {
            color: pink;
        }
        </style>
    </head>
    <body>
        <!-- css 层叠样式表   -->
        <div>ZK是狗</div>
    </body>
    </html>
    

    二 : 继承性

    所谓继承性是指书写CSS样式表时,子标签会集成父标签的某些样式,如文本颜色和字号,想要设置一个可继承的属性,只需将它应用于父元素即可.
    但是并不是所有都继承,高度,宽度不会继承,只是与文本相关的.
    恰当地使用继承可以简化代码,降低CSS样式的复杂性。子元素可以继承父元素的样式(text-,font-,line-这些元素开头的都可以继承,以及color属性)

    示例代码
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            /*p {
                color: red; 
            }*/
            .jianlin {
                color: pink;
                font-size: 50px;
                height: 100px;
            }
        </style>
    </head>
    <body>
        <div class="jianlin">
            <p>王思聪</p>
        </div>
    </body>
    </html>
    

    三 : 优先级

    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贡献值 重要的 ∞ 无穷大
    示例代码
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        #ya {  /*权重 0,1,0,0*/
            color: blue;
        }
        
        .yase {   /* 类选择器权重 高于 标签选择器   权重   0, 0, 1, 0*/
            color: green;
        }
    
        div { 
            /* 权重   0, 0, 0, 1*/
            /* 权重   0, 0, 0, 1*/
            color: red;
        }
    
        
        div { 
            /* 权重   0, 0, 0, 1*/
            /* 权重   0, 0, 0, 1*/
            color: hotpink!important;
        }
    
    
        *  {    0 0 0 0 
    
        }
    
        /**  0000
        div 0001
        .one 0010
        #two 0100
        行内 1000
        important ∞*/
        </style>
    </head>
    <body>
        <div class="yase" id="ya" style="color: orange">世界杯加油!</div>
    </body>
    </html>
    
    原则一 : 权重相同 则就近原则
    示例代码
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        div { /*0001*/
            color: red;
        }
        div {  /*0001*/
            color: green;
        }
        </style>
    </head>
    <body>
        <div>
            <p > 世界杯cool </p>
        </div>
    </body>
    </html>
    
    原则二 : 权重会叠加
    示例代码
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        
        div p {/* 0001 + 0001  =  0002*/
            color: green;
        }
    
        p {  /*0001*/
            color: red;
        }
    
        .feng { /* 0010*/
            color: blue;
        }
    
        </style>
    </head>
    <body>
        <div>
            <p class="feng"> 世界杯Cool </p>
        </div>
    </body>
    </html>
    
    标签权重叠加示例
    div ul  li   ------>      0,0,0,3
    
    .nav ul li   ------>      0,0,1,2
    
    a:hover      -----—>      0,0,1,1
    
    .nav a       ------>      0,0,1,1   
    
    #nav p       ----->       0,1,0,1
    
    总结 : 数位之间没有进制 比如说: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0, 所以不会存在10个div能赶上一个类选择器的情况。
    继承问题

    继承的权重为0
    优先执行自己的

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        
        p {  
            color: red;
        }
    
        div {
            color: pink;
        }
        </style>
    </head>
    <body>
        <div >
            <p>继承的问题</p>
        </div>
    </body>
    </html>
    

    下面这种情况还是执行自己的

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        
        .father { /* 0010*/
            color: green!important;
        }
        
        p {   /*0001*/
            color: red;
        }
        </style>
    </head>
    <body>
        <div class="father">
            <p>继承的问题</p>
        </div>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:CSS篇-CSS三大特性

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