第13章 CSS选择器[上]

2017年8月22日17:46:11 发表评论

本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素。目前CSS 选择器的版本已经升级至第三代,即 CSS3 选择器。CSS3 选择器提供了更多、更丰富的选择器方式,主要分为三大类。

一.选择器总汇

本节课主要涉及到三种选择器:基本选择器、复合选择器和伪元素选择器,具体如下:

选择器 名称 说明 CSS 版本
* 通用选择器 选择所有元素 2
<type> 元素选择器 选择指定类型的元素 1
#<id> id 选择器 选择指定 id 属性的元素 1
.<class> class 选择器 选择指定 class 属性的元素 1 1
[attr] 系列 属性选择器 选择指定 attr 属性的元素 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

二.基本选择器

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

1.通用选择器

* {
    border: 1px solid red;
}

解释:“*”号选择器是通用选择器,功能是匹配所有 html 元素的选择器包括<html>和<body>标签。可以使用如下元素标记测试效果:

<p>段落</p>

<b>加粗</b>

<span>无</span>

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

2.元素选择器

p {
    color: red;
}

<p>段落</p>

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

3.ID 选择器

#abc {
    font-size: 20px;
}

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

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

4.类选择器

.abc {
    border: 1px solid red;
}

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

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

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

b.abc {
    border: 1px solid red;
}

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

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

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

5.属性选择器

//所需 CSS2 版本

[href] {
    color: orange;
}

解释:属性选择器,直接通过两个中括号里面包含属性名即可。当然,还有更多扩展的属性选择器。

//所需 CSS2 版本

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

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

//所需版本 CSS3

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

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

//所需版本 CSS3

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

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

//所需版本 CSS3

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

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

//所需版本 CSS2

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

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

//所需版本 CSS2

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

解释:属性值具有多个值且使用“-”号连接符分割的其中一个值的属性选择器。比如<i lang="en-us">HTML5</i>。

二.复合选择器

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

1.分组选择器

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

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

2.后代选择器

p b {
    color: red;
}

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

3.子选择器

ul > li {
    border: 1px solid red;
}
<ul>
    <li>我是儿子
        <ol>
            <li>我是孙子</li>
            <li>我是孙子</li>
        </ol>
    </li>
    <li>我是儿子</li>
    <li>我是儿子</li>
</ul>

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

4.相邻兄弟选择器

p + b {
    color: red;
}

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

5.普通兄弟选择器

p ~ b {
    color: red;
}

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

三.伪元素选择器

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

1.::first-line 块级首行

::first-line {
    color: red;
}

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

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

::first-letter {
    color: red;
}

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

3.::before 文本前插入

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

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

4.::after 文本后插入

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

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

注:本次教程共63节课(由大庆seo工程师整理发布),循序渐进地教您响应式网站的制作。1-13课时为html5内容,14-40课时为css3内容,41-51课时为pc端固定布局网站制作实例,52-57课时为移动端流体布局网站制作实例,58-63课时为响应式网站制作实例。最贴心的是每节课示例代码提供免费下载。小白从第一节课开始学起,将走向前端开发,特别是目前最为流行的响应式网站高手之路......

 

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: