CSS选择器

基本选择器

通用选择器

* {

         border: 1px solid red;

}

 

<p>段落</p>

<b>加粗</b>

<span>无</span>

解释:“*”号选择器是通用选择器,功能是匹配所有html元素的选择器包括<html>和<body>标签。

通用选择器会将所有元素匹配并配置样式,这是把双刃剑,好处就是非常方便,坏处就是将不必要的元素也配置了。目前为止,还不存在所有元素都必须配置的样式,所以,一般来说,不常用

元素选择器

p {

         color: red;

}

<p>段落</p>

解释:直接使用元素名称作为选择器名即可

ID选择器

#abc {

    color: green;

}

<p id="abc">段落</p>

解释:通过对元素设置全局属性id,然后使用#id值来选择页面唯一元素。

类选择器

.abc {

    color: blue;

}

<b class="abc">加粗</b>

<span class="abc">无</span>

解释:通过对元素设置全局属性class,然后使用.class值选择页面一个或多个元素。b.abc {

    color: orange;

}

解释:也可以使用“元素.class值”的形式,限定某种类型的元素。

.abc {

    color: red;

}

.def {

    font-size: 30px;

}

<span class="abc edf">无s</span>

解释:类选择器还可以调用多个样式,中间用空格隔开进行层叠。

属性选择器

[href] {

         color: red;

}

<a href="http://www.baidu.com">百度</a>

解释:属性选择器,直接通过两个中括号里面包含属性名即可,有该属性的元素可以匹配

[type="password"] {

    border: 1px solid red;

}

<input type="password">

解释:匹配属性值的属性选择器。

[href^="http"] {

    color: red;

}

<a href="http://www.baidu.com">百度</a>

解释:属性值开头匹配的属性选择器

[href$=".cn"] {

    color: red;

}

解释:属性值结尾匹配的属性选择器。

[href*="baidu"] {

    color: red;

}

解释:属性值包含指定字符的属性选择器

[class~="def"] {

    color: red;

}

<span class="abc def">这是一个什么都没有</span>

解释:属性值具有多个值时,匹配其中一个值的属性选择器

[lang|="en"] {

    color: red;

}

<i lang="en-us">HTML5</i>

解释:属性值具有多个值且使用“-”号连接符分割的其中一个值的属性选择器

 

复合选择器

分组选择器

p,b,i,span {

    color: red;

}

#abc,.abc,i,span {

    color: blue;

}

解释:将多个选择器通过逗号分割,同时设置一组样式。当然,不但可以分组元素选择器,还可以使用ID选择器、类选择器、属性选择器混合使用

后代选择器

p b {

    color: red;

}

<p id="abc">这是一个<b>段落</b></p>

<p id="abc">这是<span>一个<b>段落</b></span></p>

这是一个段落

解释:选择<p>元素内部所有<b>元素。不在乎<b>的层次深度。当然,后代选择器也可以混合使用ID选择器、类选择器、属性选择器。

子选择器

p > b {

         color: red;

}

<p >这是一个<b>段落</b></p>

<p >这是<span>一个<b>段落</b></span></p>

这是一个段落

这是一个段落

解释:子选择器类似与后代选择器,而最大的区别就是子选择器只能选择父元素向下一级的元素,不可以再往下选择。

相邻兄弟选择器与普通兄弟选择器

<p id="abc">这是一个<b>段落</b></p>

 

<b class="abc">这是一个加粗</b>

 

<span class="abc def">这是一个什么都没有</span>

 

<b class="abc">这是一个加粗</b>

 

p + b {

    color: red;

}

这是一个段落

这是一个加粗 这是一个什么都没有 这是一个加粗

p ~ b {

    color: red;

}

这是一个段落

这是一个加粗 这是一个什么都没有 这是一个加粗

伪类选择器

结构性伪类选择器

结构性伪类选择器能够根据元素在文档中的位置选择元素。这类元素都有一个前缀(:)。

子元素选择器

<ul>

         <li>我是儿子</li>

         <li>我是儿子</li>

         <li>我是儿子</li>

         <li>我是儿子</li>

</ul>

 

<ul>

         <li>我是儿子</li>

</ul>

 

ul > li:first-child {

       color: red;

}

解释:选择第一个子元素。

ul > li:last-child {

       color: red;

}

解释:选择最后一个子元素。

ul > li:only-child {

       color: red;

}

解释:选择只有一个子元素的那个子元素。

<div>

    <p>我是段落</p>

    <span>我不是段落</span>

</div>

 

<div>

    <p>我是段落</p>

    <p>我是段落</p>

</div>

 

div > p:only-of-type {

       color: red;

}

解释:选择只有一个指定类型的子元素的那个子元素。(第一个div下一个p,第二个div下两个p,所以第一个div下的p符合)

 

ul > li:nth-child(2) {

         color: red;

}

解释:选择子元素的第二个元素。

ul > li:nth-last-child(2) {

    color: red;

}

解释:选择子元素倒数第二个元素。

div > p:nth-of-type(2) {

    color: red;

}

<div>

    <p>我是段落</p>

    <span>我不是段落</span>

</div>

 

<div>

    <p>我是段落</p>

    <p>我是段落</p>

</div>

解释:选择特定子元素的第二个元素[因为第一组div中,只有第一个p]

div > p:nth-last-of-type(1) {

    color: red;

}

<div>

    <p>我是段落</p>

    <span>我不是段落</span>

</div>

 

<div>

    <p>我是段落</p>

    <p>我是段落</p>

</div>

解释:选择特定子元素的倒数第一个元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值