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>

  • 相关阅读:
    sql server 中having 的使用注意事项
    js截取字符串
    .net截取字符串
    序列化二叉树
    把二叉树打印成多行
    35 拷贝赋值函数、虚函数
    34 char类型转换为int类型
    33 单/双精度有效数字、程序运行过程
    32 C++常见错误集锦
    31 位域、空类的sizeof值
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13020452.html
Copyright © 2011-2022 走看看