zoukankan      html  css  js  c++  java
  • css权威指南_特指度

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="urf-8">
            <title>css权威指南_特指度</title>
            <style>
                body{
                    margin: 0;
                    padding: 0;
                }
                .sign{
                    color: red;
                    font-weight: bold;
                }
                h1, h2, #grape3, h4{
                    height: 2em; /*特指度 = 0,1,0,2  相同属性选择符在同一特指度位累加*/
                }
                h1{
                    background: red; /*特指度 = 0,0,0,1 */
                    
                }
                h2{
                    background: silver; /*特指度 = 0,0,0,1 */
                }
                
                h1.grape{
                    color: white; /*特指度 = 0,0,1,1 */
                }
                h2.grape2{
                    color: yellow; /*特指度 = 0,0,1,1 */
                }
                
                #grape3{
                    background: green; /*特指度 = 0,1,0,0 */
                }
                *{
                    color: gray; /*通用选择符将所有元素字体颜色设置为灰色,但是根据规则
                    通用选择符不增加特指度即0,0,0,0*/
                }
                h4{
                    background: blue;
                    color: white;
                }
                h4 > span{
                    background: white; /*特指度 = 0,0,1,1 注意这里连接符不增加特指度,连零都不是*/
                }
                h5{
                    background: transparent !important; /*重要声明和非重要声明分开处理,重要声明始终胜出*/
                }
            </style>
        </head>
        <body>
            <h3>
                <pre>
                /*
                    From:
                        CSS权威指南(第四版)_3.1_特指度
                    Q:
                        我们可以用多种方式选择设置元素的样式, 同一个元素可能被一个或多个规则选择
                    而且每个规则的选择符都不尽相同,因为匹配的元素只能为其中一个样式,那么如何
                    知道那个规则胜出?
                    
                    A: 
                        用户代理会计算每个规则中选择符的特制度,然后将其依附到规则中的声明上,如果
                    两个或多个属性声明有冲突,特制度最高的声明胜出
                    
                    R:
                        一个特指度值由四部分构成,例如0,0,0,0 选择符的特指度通过下述规则确定:
                        1、选择符中的每个ID属性加0,1,0,0
                        2、选择符中的每个类属性值、属性选择或伪类加0,0,1,0
                        3、选择符中的每个元素和伪元素加0,0,0,1,伪类到底有没有特指度在css2中表述的有些
                        自相矛盾,不过css2.1明确指出,伪元素有特指度
                        <span class="sign">4、连接符和通用选择符不增加特指度</span>
                </pre>                
            </h3>
            /*section_1*/
            <h1 class="grape">abc</h1>
            /*section_2*/
            <h2 class="grape2">def</h2>
            /*section_3*/
            <h3 id="grape3">hij</h3>
            /*section_4*/
            <h4 class="grape4">sss<span>XXXX</span>sss</h4> /*span元素字体颜色继承h4样式,即字体颜色为白色*/
                同时我们还设置了全局字体颜色为灰色,实际显示效果也为灰色,这里体现了另一个特点:
                即规则第四条: 继承不增加特指度,具体来说跟连接符一样连特指度都没有那就是连零都不是,
                通用选择符的特指度为0,0,0,0,所以span内元素字体颜色为灰色,而非继承自父元素
            */
            
            /*section_5*/
            <h5 style="background: orange; height: 2em;">行内样式特指度</h5>
            /*目前所见到的特指度都以零开头,因此你可能在想, 那一位为什么要存在呢? 存在必定有用。
            那一位是为行内样式声明保留的,行内样式声明的特指度比其他的声明都要高*/
        </body>
    </html>
  • 相关阅读:
    理解MySQL——索引与优化
    Android中shape的使用
    Android之Camera控制拍照
    android的fragments管理
    android的fragment基本介绍
    android的animator
    android软键盘弹出隐藏的监听
    android平板Home键的监听
    android jsonarray
    android 应用静默自启动的解决方法
  • 原文地址:https://www.cnblogs.com/alplf123/p/10802859.html
Copyright © 2011-2022 走看看