CSS 选择器[上]







  1. 选择器总汇
  2. 基本选择器
  3. 符合选择器
  4. 伪元素选择器

目前CSS选择器的版本已经升级至第三代,即CSS3选择器。CSS3选择器提供了更多、更丰富的选择器方式,主要分为三大类。

一、选择器总汇

三种选择器:基本选择器、复合选择器和伪选择器,具体如下:

选择器名称说明CSS版本
*通用选择器选择所有元素2
<type>元素选择器选择指定类型的元素1
#<id>id选择器选择指定id属性的元素1
.<class>class选择器选择指定class属性的元素1
[attr]系列属性选择器选择指定attre属性的元素2~3
s1,s2,s3…分组选择器选择多个选择器的元素1
s1 s2后代选择器选择指定选择器的后代元素1
s1 > s2子选择器选择指定选择器的子元素2
s1 + s2相邻兄弟选择器选择指定选择器相邻的元素2
s1 ~ s2普通兄弟选择器选择指定选择器后面的元素3
::first-line伪元素选择器选择块级元素文本的首行1
::first-letter伪元素选择器选择块级元素文本的首字母1
::before伪元素选择器选择元素之前插入内容2
::after伪元素选择器选择元素之后插入内容2
::selection伪元素选择器选择文字时触发选择3

二、基本选择器

使用简单且频率高的一些选择器归类为基本选择器。

1、通用选择器

在<body>中输入:

<p>这是一个段落</p>
<b>这是一个加粗</b>
<span>这是什么都没有</span>
在.css文件中输入:
* {
    border: 1px solid red;
}

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

2、元素选择器

在<body>中输入:

<p>这是一个段落</p>
在.css中输入:
p {
    color: red;
}

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

3、ID选择器

在<body>中输入:

<p id="abc">这是一个段落</p>
在.css中输入:
#abc {
    color: yellow;
    font-size: 20px;
}

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

4、类选择器

在<body>中输入:

<b class="abc">加粗</b>
<span class="abc"></span>
<span class="abc def"></span>
在.css中输入:
.abc {
    color: orange;
}

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

在.css中输入:
b.abc {
    border: 1px solid red;
}

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

在.css中输入:

.def {
    color: green;
}

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

5、属性选择器

<a href="http://www.baidu.com">百度</a>
<a class="edf" href="http://www.360.cn">360官网</a>
<input type="text">
<input type="password">
<i lang="en-us">HTML5</i>

①、[href]

所需CSS2版本
在<body>中输入

[href] {
    color: orange;
}

解释:属性选择器,直接通过两个中括号里边包含属性名即可。

②、[type=”password”]

所需CSS2版本
在.css中输入:

[type="password"] {
    border: 1px solid red;
    color: red;
}

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

③、[href^=”http”]前缀

所需CSS3版本
在.css中输入:

[href^="http"]
 {
    color: red;
 }

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

④、[href$=”.com”]后缀

所需CSS3版本
在.css中输入:

[href$=".com"] {
    color: yellow;
}

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

⑤、[href*=”baidu”]模糊匹配

所需CSS3版本
在.css中输入:

[href*="baidu"] {
    color: orange;
}

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

⑥、[class~=”edf”]

所需CSS2版本
在.css中输入:

[class~="edf"] {
    font-size: 50px;
}

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

⑦、[lang|=”en”]

所需CSS2版本
在.css中输入:

[lang|="en"] {
    color: red;
}

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

三、复合选择器

将不同的选择器进行组合形成新的特定匹配,我们称为复合选择器。

1、分组选择器

在.css中输入:

p,b,i,span {
    color: orange;
}

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

2、后代选择器

你知道哪里这个地方变动变动

在.css文件中输入:

p b,span {
    color: blue;
}

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

3、子选择器

<ul>
    <li>
        我是儿子
        <ol>
            <li>我是孙子</li>
            <li>我是孙子</li>
        </ol>
    </li>
    <li>我是儿子</li>
    <li>我是儿子</li>
</ul>
在.css文件中输入:
ul > li {
    border: 1px solid red;
}

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

4、相邻兄弟选择器

<p>这是个p</p>
<b>这是个b</b>
<p>这又是个p</p>
在.css文件中输入:
p + b {
    color: red;
}

解释:相邻兄弟选择器匹配和第一个元素相邻的第二个元素。

5、普通兄弟选择器

<p>这是个p</p>
<b>这是个b</b>
<b>这又是一个b</b>
在.css文件中输入:
p ~ b {
    color: orange;
}

解释:普通兄弟选择器匹配和第一个元素后面的所有元素

四、伪元素选择器

伪选择器分为两种,第一种是伪类选择器,第二种是伪元素选择器。这两种选择器特性上比较容易混淆,在CSS3中为了区分,伪元素前置两个冒号(::),伪类前置一个冒号(:)。

1、::first-line块级首行

p::first-line {
    color: red;
}

解释:块级元素比如<p>、<div>等的首行文本被选定。如果想限定某种元素,可以加上前置p::first-line

2、::first-letter块级首字母

::first-letter {
    color: red;
}

解释:块级元素的首行字母。

3、::before文本前插入

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

在.css文件中输入:

a::before {
    content: '点击-';
}

解释:在文本前插入内容。

4、::after文本后插入

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

在.css文件中输入:

a::after {
    content: '-请进';
}

解释:在文本后插入内容。

5、::selection

在.css文件中输入:

p::selection {
    color: red;
}

解释:设置一个伪元素选择器,当选择文字时触发选择。CSS3版本下的选择器


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值