zoukankan      html  css  js  c++  java
  • css:复合选择器(后代、子选择器、并集、伪类)

    1、什么是复合选择器

    在css中,可以根据选择器的类型,把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上的,对基础选择器进行组合形成的

    复合选择器可以更准确、更高效的选择目标元素(标签)

    复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的

    常用的复合选择器:后代选择器、子选择器、并集选择器、伪类选择器等等

    2、后代选择器

    (1)后代选择器又称为包含选择器,可以选择父元素里面的子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就发生外层标签的后代

    (2)举例

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                ol li{
                    color: red;
                }
            </style>
        </head>
        <div></div>
    
        <body>
            <ol>
                <li>星期一</li>
                <li>星期二</li>
                <li>星期三</li>
                <li>星期四</li>
            </ol>
        </body>
    
    </html>

    元素一是父亲,元素二是孩子,最终修改的是元素二(孩子,可以是儿子、孙子... ...)

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                ol li a{
                    color: red;
                }
            </style>
        </head>
        <div></div>
    
        <body>
            <ol>
                <li><a href="#">星期一</a></li>    
            </ol>
        </body>
    
    </html>

     区分两个相同的标签元素:

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                ol li a{
                    color: red;
                }
                .nav li a{
                    color: yellow;
                }
            </style>
        </head>
        <div></div>
    
        <body>
            <ol>
                <li><a href="#">星期一</a></li>    
            </ol>
            
            <ol class="nav">
                <li><a href="#">星期二</a></li>    
            </ol>
        </body>
    
    </html>

    3、子选择器

    子选择器只能选择作为某元素的最近一级子元素

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                ol li a{
                    color: red;
                }
                .nav>a{
                    color: yellow;
                }
            </style>
        </head>
        <div></div>
    
        <body>
            <ol>
                <li><a href="#">星期一</a></li>    
            </ol>
            
            <ol class="nav">
                <a href="#">星期二</a>
                <li><a href="#">星期三</a></li>    
            </ol>
        </body>
    
    </html>

     元素一与元素二中间用 > 相分隔

    4、并集选择器

    并集选择器可以选择多组标签,同时为他们定义相同的样式,通常用于集体声明

    (1)熊大和熊二都改为红色:

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
              div,p{
                  color: red;
              }
            </style>
        </head>
        <body>
            <div>熊大</div>
            <p>熊二</p>
            <span>光头强</span>
            <ul class="pig">
                <li>小猪佩奇</li>
                <li>猪爸爸</li>
                <li>猪妈妈</li>
            </ul>
        </body>
    </html>

    元素之间用逗号分隔

    (2)熊大、熊二和小猪一家都改为红色:

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
              div,p,.pig li{
                  color: red;
              }
            </style>
        </head>
        <body>
            <div>熊大</div>
            <p>熊二</p>
            <span>光头强</span>
            <ul class="pig">
                <li>小猪佩奇</li>
                <li>猪爸爸</li>
                <li>猪妈妈</li>
            </ul>
        </body>
    </html>

    5、伪类选择器

    用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第一个、第n个元素

    伪类选择器的最大特点是用冒号(:)表示

    伪类选择器的种类很多,例如:链接伪类、结构伪类

    a:link        选择所有未被访问的链接

    a:visited   选择所有已经被访问的链接

    a:hover    选择鼠标指针位于其上的链接

    a:active   选择活动链接(鼠标按下未弹起的链接)

    <html>
    
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                a:link {
                    /*未访问的链接*/
                    color: #333;
                    text-decoration: none;
                }
                
                a:visited {
                    /*访问过的链接*/
                    color: red;
                    text-decoration: none;
                }
                
                a:hover {
                    /*鼠标经过的时候的链接*/
                    color: deeppink;
                    text-decoration: none;
                }
                
                a:active {
                    /*活动链接*/
                    color: aquamarine;
                    text-decoration: none;
                }
            </style>
        </head>
    
        <body>
            <a href="#">新闻</a>
        </body>
    
    </html>

     

     为了确保伪类生效,需要按照LVHA的顺序书写:link-visited-hover-active(LV包包hao)

    6、focus伪类选择器

    用于选择获得焦点的表单元素,焦点就是光标,一般情况下<input> 类表单元素才能获取,因此这个选择器也要针对于表单元素来说

    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                input:focus{
                    background-color: red;
                }
            </style>
        </head>
    
        <body>
            <input type="text" /><br />
            <input type="text" /><br />
            <input type="text" /><br />        
        </body>
    
    </html>

  • 相关阅读:
    606. Construct String from Binary Tree
    696. Count Binary Substrings
    POJ 3255 Roadblocks (次短路)
    POJ 2823 Sliding Window (单调队列)
    POJ 1704 Georgia and Bob (博弈)
    UVa 1663 Purifying Machine (二分匹配)
    UVa 10801 Lift Hopping (Dijkstra)
    POJ 3281 Dining (网络流之最大流)
    UVa 11100 The Trip, 2007 (题意+贪心)
    UVaLive 4254 Processor (二分+优先队列)
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13020452.html
Copyright © 2011-2022 走看看