css-选择器简介

前言

我也不知道为什么要再总结一遍,明明以前也总结过了。可能是买了书(《css权威指南》),膨胀了,再写一遍。

选择器

标签选择器

1
2
h1 {color: red}
h1 , p {color: red}

通配选择器

1
*{color: red}

类选择器-多类选择器(使用空格分开)

1
2
3
4
5
<style>
.class-selector-1{color: red}
.class-selector-2{margin: 10px}
</style>
<span class="class-selector-1 class-selector-2">hello</span>

ID选择器

1
2
3
4
5
6
<style>
#span-1{
color: red
}
</style>
<span id="span-1">hello</span>

属性选择器

1
2
3
4
5
6
7
8
9
<!--选择有class属性的所有h1元素-->
<style>
h1[class]{
color: red;
}
</style>
<h1 class="selector">hello</h1>
<h1 class="selector">woeld</h1>
<h1 class="selector">yes</h1>

后代选择器(根据文档结构)

  • 选择所有子元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!--所有符合条件的后代都会应用-->
<style>
h1 span{
color: red;
}
</style>
<h1>
<span>hello</span><span>world</span>
</h1>
<h1>
<em>
<span>你好</span><span>世界</span>
</em>
</h1>

效果如下:

普通后代选择器

  • 选择一个子元素
1
2
3
4
5
6
7
8
9
10
11
12
13
<style>
h1 > span{
color: red;
}
</style>
<h1>
<span>hello</span><span>world</span>
</h1>
<h1>
<em>
<span>你好</span><span>世界</span>
</em>
</h1>

效果如下:

限定范围的后代选择器

  • 选择相邻兄弟元素
1
2
3
4
5
6
7
8
9
<style type="text/css">
h1 + p {margin-top:50px;}
</style>
<h1>This is a heading.</h1>
<p>This is paragraph.</p>
<p>This is paragraph.</p>
<p>This is paragraph.</p>
<p>This is paragraph.</p>
<p>This is paragraph.</p>

效果如下:

选择相邻兄弟

伪类(:)和伪元素(:: )

  • 伪类:类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。
  • 伪元素:伪元素用于创建一些不在文档树中的元素,并为其添加样式。
  • 一些老旧的浏览器不支持双冒号的写法,因此如果必须兼容旧浏览器,则应该使用单冒号写法。IE 从 9 开始支持双冒号写法。

伪类.png

伪元素.png

图片来源–总结伪类与伪元素