zoukankan      html  css  js  c++  java
  • 选择器及优先级

    一、选择器

    1. 基本选择器

    ① 元素选择器(标签)

    ② ID选择器(唯一性 )

    ③ 类选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>基本选择器</title>
        <style>
            /* 元素选择器 */
            p{
                color:  red;
            }
             /* ID选择器 */
            #poem{
                color: green;       
            }
             /* 类选择器 */
            .line{
                color: blue;       
            }
    
            /* 字体颜色为绿色,涉及优先级问题 */
        </style>
    </head>
    <body>
        <p id="poem" class="line">春宵一刻值千金,花有清香月有阴。</p>
    </body>
    </html>        

    2. 复合选择器

    ① 交集选择器

    ② 并集选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>复合选择器</title>
        <style>
            /* 交集选择器 */
            p.line{
                font-size:  20px;
            }
             /* 并集选择器 */
            h5,p{
                color: green;       
            }
        </style>
    </head>
    <body>
        <h5>春宵</h5>
        <p id="poem" class="line">春宵一刻值千金,花有清香月有阴。</p>
        <p>歌管楼台声细细,秋千院落夜沉沉。</p>
    </body>
    </html> 

    3. 关系选择器

    ① 子元素选择器

    ② 后代选择器

    ③ 兄弟选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>关系选择器</title>
        <style>
            /* 子元素选择器 */
            div > span{
                color: red;    /* 只有div下的直接子元素span的字体为红色 */
            }
             /* 后代选择器 */
            div span{
                color: green;   /* span字体都为绿色 */    
            }
             /* 兄弟选择器 */
            p + span{
                color: purple;   /* 标签p的下一个兄弟span元素的字体为紫色 */    
            }
            p ~ span{
                color: blue;   /* 标签p的所有兄弟span元素的字体为蓝色 */    
            }
        </style>
    </head>
    <body>
        <div>
            <p>春宵</p>
            <p><span></span>苏轼</p>
            <span>春宵一刻值千金,花有清香月有阴。</span>
            <br>
            <span>歌管楼台声细细,秋千院落夜沉沉。</span>
        </div>
    </body>
    </html> 

    4. 属性选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>属性选择器</title>
        <style>
           /*
                [属性名]  选择含有指定属性的元素
                [属性名 = 属性值]  选择含有指定属性和属性值的元素
                [属性名 ^= 属性值]  选择以属性值开头的元素
                [属性名 $= 属性值]  选择以属性值结尾的元素
                [属性名 *= 属性值]  选择含有属性值的元素
           */
           /*
            p[title]{
                color: red;
            }    
            p[title = abc]{
                color: green;
            }    
            p[title ^= abc]{
                color: blue;
            } 
            p[title $= de]{
                color: yellow;
            } 
            p[title *= cd]{
                color: pink;
            } 
           */
        </style>
    </head>
    <body>
        <div>
            <p title="abc">春宵</p>
            <p title="abcde"><span></span>苏轼</p>
            <p title="cde">春宵一刻值千金,花有清香月有阴。</p>
            <p title="cd">歌管楼台声细细,秋千院落夜沉沉。</p>
        </div>
    </body>
    </html>     

    5. 伪类选择器

    <!DOCTYPE html> 
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>伪类选择器</title>
        <style>
           /*
                伪类(不存在的类,特殊的类)
                        - 伪类用来描述一个元素的特殊状态
                 伪类的声明
                        - :开头
                        :first-child  第一个子元素
                        :last-child  最后一个子元素
                        :nth-child()  选中第n个子元素    
                                特殊值:
                                      n    n的范围:0~正无穷
                                      2n 或 even   表示选中偶数位的元素          
                                      2n+1 或 odd   表示选中奇数位的元素 
                        - 以上的这些伪类是在所有子元素中进行排序   
    
                        :first-of-type
                        :last-of-type
                        :nth-of-type()
                        - 用法与上述类似,不同:在同类元素中进行排序                                         
           */
           /*
            ul > li:first-child{
                color: red;     /*ul下的直接子元素中第一个元素不是li,则字体颜色没有发生改变*/
            }
            ul > li:last-child{
                color: red;
            }
            ul > li:nth-child(2){
                color: red;  /* ul直接子元素中,所有子元素的第一个元素为li时,字体颜色为红色 */
            }
            ul > li:nth-of-type(2){
                color: red;  /* ul直接子元素中,同类元素li的第二个li */
            }
           */
        </style>
    </head>
    <body>
        <ul>
            <span>古诗</span>
            <li>春宵</li>
            <li>苏轼</li>
            <li>春宵一刻值千金,花有清香月有阴。</li>
            <li>歌管楼台声细细,秋千院落夜沉沉。</li>
        </div>
    </body>
    </html>     

    二、伪元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>伪元素</title>
        <style>
           /*
                伪元素:表示页面中一些特殊的并不真实存在的元素(特殊的位置)
                 伪元素的声明:
                        - ::开头
                 
                        ::first-letter   表示第一个字母
                        ::first-line      表示第一行
                        ::selection     表示选中的内容
                        ::before         元素的开始 
                        ::after            元素的最后
                              - before 和 after 必须结合content属性来使用                        
           */
    
            p::first-letter{
                font-size: 40px;
            }
           /*
            p::first-line{
                background-color: blue;
            }
           */
            p::selection{
                background-color: yellow;
            }
    
            h3::before{
                content: '“';
            }
    
            h3::after{
                content: '”';
            }
        </style>
    </head>
    <body>
        <div>
            <h3>尘封在沙漏里的友谊</h3>
            <p>曾经我们坚信海誓山bai盟过后沉淀的必定是坚贞不移、此生不离;曾经我们坚信彼此的心圈在一个核里哪怕时光穿梭也毫无芥蒂;曾经你赠我沙漏与我互定永久告诉我亘古不变天荒地老的情谊。那些曾经在我最灿烂的年华里伴我左右。</p> 
             <p>然而,所有的事,由平淡开始,终究归于平淡。如你,亦如我
    。那些曾经我们牵手一起走过的小巷如今留与我一人独步;那些曾经我们欢笑的地方如今留与我含泪目睹;那些曾经我们惦念的往昔如今在记忆里残存过渡。只是那些幻影,那么不小心掉进了我的回忆里。</p>
             <p>你说,我温柔得会被蚊子咬死。我说,你的心脆弱得比玻璃易
    碎。可是,我们都那么倔强,连性格仿佛都摹刻在一个雕版里,以至于以后的岁月里争吵不断。</p>
             <p>你说,我们上辈子是不是仇人,于是,我们会心地一笑。那么多年过去,那么争吵过来,我却一直未曾告诉过你,我们的情谊,一直在我的心里,占据主体。只是,我们用自己冷漠的心,掘了一条无法跨越的鸿沟。</p>
             <p>这些年来,那么快,不知不觉,过来那么久,我却依旧寻不到当年那个模样的沙漏。你送我的沙漏,如同我们的友谊,无法复制,不可摹刻。</p>
             <p>你说,我的世界关得太紧,让人无法走进。这一句的辛酸被我悄悄藏在了心底。我世界的门一直敞开,而你早已住进了我的心里。只是,你却毫无知觉。</p>
             <p>如今,你的身边是否有知己,代替我陪你走?她知不知道你的倔强?她理解不理解你倔强的外表下柔弱的心?她会不会和你肆无忌惮大笑时安抚你实际悲痛的心伤?我们都要幸福。</p>
        </div>
    </body>
    </html>   

      2.1  <a>标签的伪类

    <!DOCTYPE html> 
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>a元素的伪类</title>
        <style>
           /*
                :link    用来表示没访问过的链接(正常链接)
           */
            a:link{
                  color: red;  
            }
    
           /*
                :visited   用来表示访问过的链接
                由于隐私的原因,所以visited这个伪类只能修改链接颜色
           */
            a:link{
                  color: orange;
                  /* font-size: 50px; */
            }
    
           /*
                :hover    用来表示鼠标移入的状态
           */
            a:hover{
                  color: purple;
                  font-size: 50px;
            }
    
           /*
                :active    用来表示鼠标点击
           */
            a:active{
                  color: yellowgreen;  
            }
        </style>
    </head>
    <body>
        <a href="http://www.baidu.com">访问过的链接</a>
        <a href="http://www.taobao.com">没访问过的链接</a>
    </body>
    </html>     

    三、选择器的权重(解决样式冲突)

    内联样式 1000

     css样式的三种方式:

    ① 内联样式/行内样式

    ② 内部样式表

    ③ 外部样式表

      - 优先选择,理由:加载后可暂时缓存在浏览器里,再次应用可以不再加载,直接使用

    id选择器 100 
    类和伪类选择器 10 
    元素选择器
    通配符选择器
    继承的样式 没有优先级 

    优先级的比较:通过所有选择器的优先级进行相加获得。

    优先级计算相同,则使用就近原则

    可以在某一个样式后添加 !important ,则此时样式权重最高,甚至超过内联样式。(慎用)

     

     

  • 相关阅读:
    [CSS] Showing horizontal scrollbar always for the table
    [Angular Unit Testing] Testing Component methods
    [Angular Unit Testing] Testing Services with dependencies
    Win7下unetbootin-windows-585工具制作Ubuntu12.04 U盘启动盘
    一个外行谈移动互联网产品的生与死
    unity 距离某天还有多久
    UI线程与worker线程
    关于 unity3d securityexception no valid crossdomain policy available 的错误解决方法
    小窍门:变更Windows Azure Websites自带的node.exe版本
    Windows SVN变更发送邮件通知(JAVA实现)
  • 原文地址:https://www.cnblogs.com/nadou/p/13845635.html
Copyright © 2011-2022 走看看