css 选择器

css 选择器 

项目和实际中使用频率高的 后代选择器子代选择器伪元素

01) 后代选择器  (以空格分隔)

<!--
    后代选择器(以空格分隔)
    选择div 元素内的所有p 元素 中的 所有span 元素
-->
<style>
    div p span{
        color: #ff0000;
    }
</style>
<span>dafei01</span>
<div>
    <span>dafei02</span>
</div>
<div>
    <p>
        <span>dafei03 红色 </span>
        <strong>
            <span>dafei04 红色</span>
        </strong>
    </p>
</div>
<p>
    <span>dafei05</span>
</p>

02) 子代选择器 (以大于号分隔)

<!--
    子元素选择器(以大于号分隔)
    选择div 元素内的子代p 元素 中的子代span 元素 
    [ 必须是div p span 层级模式,中间不能有其他元素 ]
-->
<style>
    div > p > span {
        color: #ff0000;
    }
</style>
<span>dafei01</span>
<div>
    <span>dafei02</span>
</div>
<div>
    <p>
        <span>dafei03 红色 </span>
        <strong>
            <span>dafei04</span>
        </strong>
        <span>dafei06 红色 </span>
    </p>
</div>
<p>
    <span>dafei05</span>
</p>

03) 伪元素 ::before::after

其他不常用的伪元素 
::first-letter    选择指定元素的第一个单词    
::first-line    选择指定元素的第一行
::selection    选择指定元素中被用户选中的内容

01) --------------------------------------------------------------------------

<style>
    /* 
    所有的span标签前面添加foo_
    也可以是图片 content: url('./img.png')
    */
    /*这2种等效,习惯选择第一种,使用2个冒号, 
    其实就是为了  把伪元素和伪类区分开*/
    /*
      这里的content 属性不能省略      
    */
    span::before {  /* 习惯写2个冒号 */
        content: 'foo_';
    }
    /*span:before {*/
        /*content: 'foo_';*/
    /*}*/
</style>


<span>dafei01</span>
<div>
    <span>dafei02 红色</span>
</div>
<div>
    <p>
        <span>dafei03</span>
        <strong>
            <span>dafei04</span>
        </strong>
        <span>dafei06</span>
    </p>
</div>
<p>
    <span>dafei05</span>
</p>

02) ----------------------------------------------------------------------------
<style>
    /* 为元素可以看做行内元素 */
    span::before { 
        content: 'foo_';
        background-color: #ff0000;
        display: inline-block;
        width: 50px;
        height: 50px;
        margin-right: 30px;
    }
</style>
<span>dafei01</span>
<div>
    <span>dafei02 红色</span>
</div>
<p>
    <span>dafei05</span>
</p>

04)  交集选择器

<!--
    交集选择器(标签和class构成)
-->
<style>
    /* 标签是div且class为class_foo */
    div.class_foo {
        color: #ff0000;
    }
</style>
<span class="class_foo">dafei01</span>
<div class="class_foo">
    <span>dafei02 红色</span>
</div>
<div>
    <p class="class_foo">
        <span class="class_foo">dafei03</span>
        <strong>
            <span class="class_foo">dafei04</span>
        </strong>
        <span>dafei06</span>
    </p>
</div>
<p class="class_foo">
    <span>dafei05</span>
</p>

05) 并集选择器

<!--
    并集选择器(以逗号分隔)
-->
<style>
    div, p, span {
        color: #ff0000;
    }
</style>
<span>dafei01 红色</span>
<div>
    <span>dafei02 红色</span>
</div>
<div>
    <p>
        <span>dafei03 红色</span>
        <strong>
            <span>dafei04 红色</span>
        </strong>
        <span>dafei06 红色</span>
    </p>
</div>
<p>
    <span>dafei05 红色</span>
</p>
<h5>dafei07</h5>
原文地址:https://www.cnblogs.com/dafei4/p/13171176.html