前端都会去了解的前端小栈网页前端后台技巧(CSS+HTML)

CSS篇-CSS三大特性

2018-07-15  本文已影响8人  TianTianBaby223

一 : 层叠性

浏览器处理冲突的一种能力,以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>
上一篇下一篇

猜你喜欢

热点阅读