CSS 几种高级选择器

这篇介绍4种高级选择器,后代选择器,交集选择器,并集选择器,伪类选择器


1.后代选择器:定义的时候用空格隔开

对于X(空格)Y,表示所有属于X元素后代的Y元素,有这个样式,空格就表示后代

后代选择器, 就是一种平衡:共性,特性的平衡。当把某一个部分的所有的什么,进行样式该改变,就要想到后代选择器。

后代选择器,描述的是祖先结构,简单来说就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

例如:

<style>
    .div p{
        color: red;
}
</style>

空格就表示后代,.div p表示,div1的后代所有的p

 这里强调一下,这两个标签不一定紧挨着,只要保持一个后代的关联即可。也就说,选择的是后代,不一定是儿子。

<style>
    h3 b i {
        color: red;
    }
</style>

上面的代码意思是说:定义了<h3>标签中的<i>标签的样式。

或者可以写成

<style>
    h3 i{
        color: red;
    }
</style>

2.交集选择器:定义的时候紧密相连

集选择器由两个选择器构成,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,如h3.special。

如果后一个选择器是类选择器,则写为div.speacial; 后一个是id选择器,则写为div#speacial。

可以类比集合来思考

div为一个集合,.speacial为一个集合,div.speacia为交集;

选择的元素要求同时满足两个条件:必须是div标签,然后必须是speacial标签。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>交集选择器测试</title>
        <style type="text/css">
            h3.special {
                color: red;
            }
        </style>
    </head>
    <body>
        <h3 class="special zhongyao">标题1</h3>
        <h3 class="special">我也是标题</h3>
        <p>我是段落</p>
    </body>
</html>

注意

交集选择器没有空格。所以没有空格的div.speacial(交集选择器)和div .speacial(后代选择器)不是一个意思

交集选择器可以连续交:(一般不要这么写)

h3.special.red {
    color: red;
}

3.并集选择器:定义的时候用逗号隔开

三种基本选择器都可以放进来

p,h1,.title,#one{
    color: red;
}

4.一些选择器

(1)子代选择器:用符号>表示

div > p {
    color:red;
}

div的儿子p。和div的后代p的截然不同。

可以选择

<div>
    <p>我是div的儿子</p>
</div>

不能选择:

<div>
    <ul>
        <li>
            <p>我是div的孙子</p>
        </li>
    </ul>
</div>

(2)序选择器

设置无序选择器<ul>中的第一个<li>为红色:

<style>
    ul li:first-child{
        color: red;
    }
</style>

最后一个last-child

<style>
    ul li:last-child{
        color: blue;
    }
</style>

序选择器还有更复杂的,我还不会,以后再写笔记。

(3)下一个兄弟选择器

IE7开始兼容,IE6不兼容

<style type="text/css">
    h3 + p {
        color: red;
    }
</style>

 


参考了github大佬的总结orz

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值