美文网首页
复合选择器

复合选择器

作者: Caesar_emperor | 来源:发表于2021-11-17 14:40 被阅读0次

    一、复合选择器
    1)子选择器

    1. 父标签>子标签:将样式应用于该父标签下的第一级所有直接子标签
    2. 父标签>.class类名:将样式应用于该父标签下的第一级所有命名是该类名的子标签
    3. 父标签#id>.class类名:将样式应用于该id的父标签下的第一级所有该class类名的直接子标签(父标签和id之间无空格)

    2)包含选择器/后代选择器

    1. 父标签+空格+子标签: 将样式应用于该父标签包含的所有的该子标签,以及子标签包含的所有标签。同理,父标签可以用id或class代替,只要是在父标签中的,任何标签都可以作为子标签。可以包含很多层,但最好不要超过4层。

    子选择器和父选择器区别:

    <style>
    div#box>span{
            color:blue;
        }
    </style>
    <body>
    <h2>
        <span>html</span>
        <span>HTML树状图</span>
    </h2>
    <div id="box">
        <span>
            content:
            <span>1</span>
        </span>
        <span>
            <span>test</span>
        </span>
        <span>3</span>
        <div>
            <span>4</span>
        </div>
    </div>
    </body>
    <!--子选择器:数字4不会加载样式,其他会加载样式;包含选择器:所有的span都会加载样式-->
    <!--即包含选择器是只要该规则下的子标签被包住,不管几层都会被作用于该样式;子选择器只有第一层。也就是一个是所有后代,一个是第一代后代-->
    

    3)相邻选择器

    1. A标签+A标签相邻的标签(下一个标签,不是上一个):将样式应用于A标签的相邻标签,A标签本身不会应用该样式。下面代码中,如果讲兄弟选择器更换为相邻选择器,则只有<div>HTML树状图</div>,会应用样式。

    4)兄弟选择器

    A标签~B标签:指定A元素后面的同级B标签,以及B标签包含的所有标签应用该样式。如下面代码,与h2同级的所有div均会应用该样式

    <style>
        h2~div{
            font-size:16px;color: red
        }
    </style>
    </head>
    <body>
    <h2>HTML结构</h2>
    <div>HTML树状图</div>
    <span>
        HTML知识
    <div>oo</div>
    </span>
    <div class="class1">问君能有几多愁</div>
    <div>问君能有几多愁</div>
    </body>
    

    5)关于选择器嵌套

    一层层的找,样式作用于最里面一层的标签,如:
    #wrap #header h2 span{font-size: 24px; color: #55a532},样式作用于最里面一层的span

    6)Jquery属性选择器

    1. 基础样式

    div[attr]:匹配带有一个名为attr的属性的元素——方括号里的值。attr可以是style/class/id/其他各种属性的名字。注意,style设置的样式名不能作为attr。

    1. 通过属性值来引用

    通过属性值选择:div[attr="value"],匹配带有一个名为attr的属性的元素,其值为value——引号中的字符串。

    1. 按是否包含该属性值匹配

    p[attr~="value1"],匹配带有一个名为attr的属性的元素 ,其值正为value1,或者匹配带有一个attr属性的元素,其值有一个或者更多,至少有一个和value1匹配。注意,比如class="a b",[class="a"]是可以找到的,但class="ab",[class="a"]就找不到。

    4.按是否以该属性值开头

    div[attr|="value"],匹配带有一个名为attr的属性的元素,其值可正为value,或者开始为value,后面紧随着一个连字符。比如:div[lang|="zh"]。注意,比如class="ab",[class|="a"]是可以找到的,但class="a b",[class|="a"]就找不到。

    7)字符串匹配选择器

    1. 通过判断属性值是否包含该文本
    <style>
        div[class*="test"] {
            background: #ffff00;
        } 
    </style>
    <body>
    <div class="Nowteston">第三个 div 元素。</div>
    </body>
    <!--只要属性值包含test字段,则该样式被应用,无论value之间是否空格-->
    

    2.通过判断属性值是否以该文本结尾

    <style> 
    div[class$="test"]
    {
    background:#ffff00;
    }
    </style>
    <body>
    <div class="first_test">The first div element.</div>
    <div class="test">This is some text in a paragraph.</div>
    </body>
    <!--只要属性值以test字段结尾,则该样式被应用,无论value之间是否空格-->
    

    3.通过判断属性值是否以该文本开头

    <style>
        div[class^="test"] {
            background: #ffff00;
        }<!--只要属性值以test字段开头,则该样式被应用,无论value之间是否空格-->
    <!--注意:"-"用在两个单词间可以作为连字符,将二者合为一个单词-->
    </style>
    

    总结:

    CSS选择器和CSS3在很多地方语言结构相似,CSS让项目更稳定,CSS3则支持更多渲染

    相关文章

      网友评论

          本文标题:复合选择器

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