美文网首页
详解css选择器

详解css选择器

作者: 辉夜真是太可爱啦 | 来源:发表于2019-11-21 21:19 被阅读0次

    1.element,element,例如h1,p,选择所有 <h1> 元素和所有 <p> 元素。

    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            h1,p {
                background-color: yellow;
            }
        </style>
    </head>
    
    <body>
        <h1>我是h1标签</h1>
    
        <div class="intro">
            <p>我是p标签</p>
            <p>我是p标签</p>
        </div>
    
        <p>我是p标签</p>
    
    </body>
    
    </html>
    
    效果如图,可以看到只要是<h1>或者<p>标签,无论是否被嵌套等情况,只要标签的名字相等,都有相同的效果
    image.png

    2.element element,例如div p,选择div内部的所有p元素

    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            div p {
                background-color: yellow;
            }
        </style>
    </head>
    
    <body>
    
        <div class="intro">
            <p>div标签下的p标签</p>
        </div>
    
        <p>body下的p标签</p>
    
    </body>
    
    </html>
    
    效果如图,只有<div>元素内的<p>标签才会被选中,没有<div>标签嵌套的<p>标签则不会被选中
    image.png

    3.element>element,例如div>p,选择父元素为 <div>元素的所有 <p> 元素

    <!DOCTYPE html>
    <html>
    <head>
    <style>
    div>p
    {
    background-color:yellow;
    }
    </style>
    </head>
    <body>
        <div>
            <p>父级标签为div的p标签</p>
        </div>
        <p>父级标签为body的p标签</p>
        <div>
            <span>
                <p>父级标签为span的p标签</p>
            </span>
        </div>
    </body>
    </html>
    
    效果如图所示,只有父级标签为<div><p>标签才会被选中
    image.png

    4.element+element,例如div+p,选择紧接在 <div> 元素之后的所有 <p> 元素。

    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            div+p {
                background-color: yellow;
            }
        </style>
    </head>
    
    <body>
    
        <div>
            <p>div内的p标签</p>
            <div>紧接着p标签的div标签</div>
            <p>紧接着div标签的p标签</p>
        </div>
    
        <p>紧接着div标签的p标签啦啦啦</p>
    
        <p>紧接着p标签的p标签</p>
    
    </body>
    
    </html>
    
    效果如图所示,只有紧接着<div>标签的<p>标签才会被选中
    image.png

    5.element~element,例如p~ul,选择前面有 <p> 元素的每个 <ul> 元素。

    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            p~ul {
                background: #ff0000;
            }
        </style>
    </head>
    
    <body>
    
        <div>一个 div 元素。</div>
        <ul>
            <li>ul标签前面为div</li>
        </ul>
    
        <p>第一段。</p>
        <ul>
            <li>前面有p标签的ul</li>
        </ul>
    
        <h2>另一个列表</h2>
        <ul>
            <li>前面有p标签的ul啦啦啦</li>
        </ul>
    
    </body>
    
    </html>
    
    效果如图所示,只有前面有<p>标签的<ul>标签才会被选中
    image.png

    6.:nth-child(n),例如p:nth-child(2),选择属于其父元素的第二个子元素的每个 <p> 元素,还有一个是:nth-last-child(n),使用方法和:nth-child(n)相同,只是:nth-child是正序,而nth-last-child(n)为倒序,从后往前数

    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            p:nth-child(2) {
                background: #ff0000;
            }
        </style>
    </head>
    
    <body>
    
        <h1>父元素body中的第1个元素</h1>
        <p>父元素body中的第2个元素</p>
        <p>父元素body中的第3个元素</p>
        <p>父元素body中的第4个元素</p>
        <p>父元素body中的第5个元素</p>
    
        <p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>
    
    </body>
    
    </html>
    
    效果如图所示,在父元素中,第二个子元素的标签名也刚好为<p>,所以会被选中
    image.png
    当我们把第二个元素改为div元素的时候呢,来看看效果
    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            p:nth-child(2) {
                background: #ff0000;
            }
        </style>
    </head>
    
    <body>
    
        <h1>父元素body中的第1个元素</h1>
        <div>父元素body中的第2个元素</div>
        <p>父元素body中的第3个元素</p>
        <p>父元素body中的第4个元素</p>
        <p>父元素body中的第5个元素</p>
    
        <p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>
    
    </body>
    
    </html>
    
    效果如图所示,在父元素中,第二个子元素的标签名为<div>,不是<p>的时候,就不会被选中
    image.png
    不仅如此,不光可以填写数字,还可以填写运算,例如:nth-child(2n+1),可以选择属于其父元素的所有顺序为奇数的 <p> 元素
    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            p:nth-child(2n+1) {
                background: #ff0000;
            }
        </style>
    </head>
    
    <body>
    
        <h1>父元素body中的第1个元素</h1>
        <p>父元素body中的第2个元素</p>
        <p>父元素body中的第3个元素</p>
        <p>父元素body中的第4个元素</p>
        <p>父元素body中的第5个元素</p>
        <p>父元素body中的第6个元素</p>
        <p>父元素body中的第7个元素</p>
        <p>父元素body中的第8个元素</p>
    
        <p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>
    
    </body>
    
    </html>
    
    效果如图所示,在父元素中,所有次序为奇数的<p>标签都会被选中
    image.png
    当我们打算选中从第三个开始的p标签时(包括第三个),我们可以这样子写,:nth-child(n+3)
    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            p:nth-child(n+3) {
                background: #ff0000;
            }
        </style>
    </head>
    
    <body>
    
        <h1>父元素body中的第1个元素</h1>
        <p>父元素body中的第2个元素</p>
        <p>父元素body中的第3个元素</p>
        <p>父元素body中的第4个元素</p>
        <p>父元素body中的第5个元素</p>
        <p>父元素body中的第6个元素</p>
        <p>父元素body中的第7个元素</p>
        <p>父元素body中的第8个元素</p>
    
        <p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>
    
    </body>
    
    </html>
    
    效果如图所示,在父元素中,从第三个子元素开始算起,包括第三个子元素,只要为<p>标签都会被选中
    image.png

    7.:only-child,例如p:only-child,选择属于其父元素的唯一子元素的每个 <p> 元素

    <!DOCTYPE html>
    <html>
    
    <head>
        <style>
            p:only-child {
                background: #ff0000;
            }
        </style>
    </head>
    
    <body>
    
        <div>
            <p>唯一子元素的p标签</p>
        </div>
    
        <div>
            <div>唯一子元素的div标签</div>
        </div>
    
        <div>
            <span>这是一个 span。</span>
            <p>不是唯一子元素的p标签</p>
        </div>
    
        <p><b>注释:</b>Internet Explorer 不支持 :only-child 选择器。</p>
    
    </body>
    
    </html>
    
    效果如图所示,在父元素中,只有唯一子元素的p标签才会被选中
    image.png

    相关文章

      网友评论

          本文标题:详解css选择器

          本文链接:https://www.haomeiwen.com/subject/iohxwctx.html