css选择器

本文主要介绍了多种CSS选择器,包括id选择器、类选择器、标签选择器等。详细说明了后代、子、相邻兄弟、通用兄弟等选择器的特点,还阐述了序号选择器如:first-child、:last-child等的使用方法及属性选择器,有助于掌握CSS选择器的运用。

id选择器

    <style>
        #box{
            width: 200px;
            height: 200px;
            background: #f00;            
        }
    </style>
    <div id="box"></div>

类选择器

    <style>
        .box{
            width: 200px;
            height: 200px;
            background: #f00;            
        }
    </style>
    <div id="box"></div>

标签选择器

    <style>
        div{
            width: 200px;
            height: 200px;
            background: #f00;            
        }
    </style>
    <div id="box"></div>

后代选择器

后代选择器是可以选择某个元素的所有后代,包括儿子,孙子,重孙子,比如下面的代码中box2中的p标签是box1的孙子元素,用后代选择器也可以选中。

    <style>
        #box1 p {
            color: #f00;
        }
    </style>
    <div id="box1">
        <div id="box2">
            <p>文字</p>
            <p>文字</p>
        </div>
        <p>文字</p>
        <p>文字</p>
    </div>

子选择器

子选择器是选择某个元素的直接后代,就是儿子元素。子选择器通过 > 来表示元素的关系。下面的代码中box2中的两个p标签不会被选中

    <style>
        #box1>p {
            color: #f00;
        }
    </style>
    <div id="box1">
        <div id="box2">
            <p>文字</p>
            <p>文字</p>
        </div>
        <p>文字</p>
        <p>文字</p>
    </div>

相邻兄弟选择器

相邻兄弟选择器是选择某个元素的紧跟在后面的兄弟元素。下面的代码中 只有文字4所在的这个p标签会被选中。文字1的p标签不会被选中。

    <style>
        #box2+p {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p>文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
        </div>
        <p>文字4</p>
        <p>文字5</p>
    </div>

下面这段代码中文字4所在的p标签和box2之间隔了一个div元素。则文字4所在的p标签不是box2的相邻兄弟元素了。所以文字4所在的p标签不会被选中

    <style>
        #box2+p {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p>文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
        </div>
        <div></div>
        <p>文字4</p>
        <p>文字5</p>
    </div>

通用兄弟选择器

通用兄弟选择器 选择某个元素后面的所有的具有某个特征的兄弟元素。下面的代码是选择box2后面的兄弟元素中的p标签元素。

    <style>
        #box2~p {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p>文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
        </div>
        <div></div>
        <p>文字4</p>
        <p>文字5</p>
    </div>

序号选择器

:first-child 第一个子元素

:first-child 要和 id选择器、类选择器、标签选择器合起来使用。下面的代码选择了p标签,同时这个p标签还要是它自己的父元素的第一个子元素。下面的文字1所在的p标签是box1的第一个子元素,所以会被选中。文字2所在的p标签虽然它是box2的第一个p标签子元素,但不是box2的第一个子元素,所以文字2所在的p标签不会被选中

    <style>
        p:first-child {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p>文字1</p>
        <div id="box2">
            <div></div>
            <p>文字2</p>
            <p>文字3</p>
        </div>

        <p>文字4</p>
        <p>文字5</p>
    </div>

:last-child 最后一个子元素

通:first-child一样 文字5所在的p标签会被选中,但是文字3所在的p元素不会被选中

    <style>
        p:last-child {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p class="p2">文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
            <div></div>
        </div>

        <p class="p1">文字4</p>
        <p class="p1">文字5</p>
    </div>

:nth-child(n) 第n个子元素。

n为数字或者计算结果为数字的表达式,如:2n+1,表达式中的n从0开始
下面的代码选择p标签,同时这个p标签还要是它父元素的第二个子元素。所以文字3所在的p标签会被选中

    <style>
        p:nth-child(2) {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p class="p2">文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
            <div></div>
        </div>

        <p class="p1">文字4</p>
        <p class="p1">文字5</p>
    </div>

下面的代码中表达式为2n+1,n从0开始 那就是选择p标签同时这个p标签还是它父元素的奇数子元素。所以文字1,文字2, 文字4所在的p标签会被选中。2n+1还可以写成odd。同理p:nth-child(2n)选择偶数子元素。所以文字3,文字5所在的p标签会被选中。2n还可以写成even

    <style>
        p:nth-child(2n+1) {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p class="p2">文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
            <div></div>
        </div>

        <p class="p1">文字4</p>
        <p class="p1">文字5</p>
    </div>

:nth-last-child(n) 倒数第n个子元素

:nth-last-child(n)和nth-child(n)类似,不过选择的是倒数第n个子元素。下面的代码会选择文字5所在的p标签

    <style>
        p:nth-last-child(1) {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p class="p2">文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
            <div></div>
        </div>

        <p class="p1">文字4</p>
        <p class="p1">文字5</p>
    </div>

:nth-of-type(n) 第n个某类子元素

下面的代码选择p标签 同时这个p标签是它父元素的第二个p标签。所以 文字4和文字3所在的p标签会被选中

    <style>
        p:nth-of-type(2) {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p class="p2">文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
            <div></div>
        </div>

        <p class="p1">文字4</p>
        <p class="p1">文字5</p>
    </div>

:nth-last-of-type(n) 倒数第n个某类子元素

下面的代码选择p标签 同时这个p标签是它父元素的倒数第二个p标签。所以 文字4和文字2所在的p标签会被选中

    <style>
        p:nth-last-of-type(2) {
            color: #f00;
        }
    </style>
    <div id="box1">
        <p class="p2">文字1</p>
        <div id="box2">
            <p>文字2</p>
            <p>文字3</p>
            <div></div>
        </div>

        <p class="p1">文字4</p>
        <p class="p1">文字5</p>
    </div>

属性选择器

举例意义
img[alt]选择有alt属性的img标签
img[alt=“故宫”]选择alt属性是故宫的img标签
img[alt^="北京”]选择alt届性以北京开头的img标签
img[alt$=“夜景”]选择alt属性以夜景结尾的img标签
img[alt*=“美”]选择有alt属性中含有美字的img标签
img[alt~="手机拍摄”]选择有alt届性中有空格隔开的手机拍摄字样的img标签
img[alt="参赛作品”]选择有alt届性以“参赛作品-”开头的img标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值