css:复合选择器(后代、子选择器、并集、伪类)

sdbxpjzq 2020-05-31

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>

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

css:复合选择器(后代、子选择器、并集、伪类)

<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>

css:复合选择器(后代、子选择器、并集、伪类)

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

<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>

css:复合选择器(后代、子选择器、并集、伪类)

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>

css:复合选择器(后代、子选择器、并集、伪类)

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

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>

css:复合选择器(后代、子选择器、并集、伪类)

元素之间用逗号分隔

(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>

css:复合选择器(后代、子选择器、并集、伪类)

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>

css:复合选择器(后代、子选择器、并集、伪类)

 css:复合选择器(后代、子选择器、并集、伪类)

 为了确保伪类生效,需要按照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>

css:复合选择器(后代、子选择器、并集、伪类)

css:复合选择器(后代、子选择器、并集、伪类)

相关推荐

aSuncat / 0评论 2020-08-18