css 选择器

一、 通配选择器 *

选定所有对象。

  • 通常用于清除浏览器的默认样式

语法

* {
  margin: 0;
  padding: 0;
}

二、 元素选择器 element

以文档语言对象类型作为选择符。即html中的标签

语法

h1 {
  font-size: 20px;
}
p {
  font-size: 13px;
}

三、 id 选择器 #id

以唯一标识符 id 属性等于 myid 的 E 对象作为选择符。

语法

<style>
  #box {
    background: #cccccc;
  }
</style>

<div id="box">id选择器</div>

四、 类选择器 .class

以 class 属性包含 myclass 的 E 对象作为选择符。

不同于id 选择符的唯一性,类选择符可以同时定义多个,并控制多个元素的样式

语法

<style>
  .box {
    background: #cccccc;
  }
</style>

<div class="box">class选择器1</div>
<div class="box">class选择器2</div>
<div class="box">class选择器3</div>

三、 群组选择器 a,b

群组选择器(selector1,selectorN)是将具有相同样式的元素分组在一起,每个选择器之间用逗号(,)隔开。

语法

h1,
h2,
h3,
p {
  font-size: 14px;
}

四、 关系选择器

选择器类型功能描述
E F包含选择器选择所有被 E 元素包含的元素 F
E > F子选择器选择所有作为 E 元素的子元素 F
E ~ F兄弟选择器选择 E 元素之后的所有兄弟元素 F
E + F相邻选择器选择紧贴在 E 元素之后兄弟元素 F

1. 后代选择器 E F{}

后代选择器(E F)是选择 E 元素的所有后代 F 元素,不管 F 元素是 E 元素的子元素、孙元素或者更深层的关系,都会被选中。

语法

.baba .son {
  border: 1px solid #000;
  background-color: green;
}

2. 子代选择器 E>F{}

子选择器(E>F)是选择 E 元素的所有子后代 F 元素,注意 F 元素仅仅是 E 元素的子元素而已。

语法

.baba > .son {
  background-color: yellow;
}

3. 兄弟选择器 E~F{}

兄弟选择器(E~F)是 CSS3 新增选择器,代表 E 和 F 具有同一个父元素,并且 F 元素在 E 元素后面,但是不用相邻。

例子

语法

.baba ~ .shushu {
  width: 400px;
  height: 200px;
  background-color: green;
  color: #fff;
}

4. 相邻选择器 E+F{}

相邻选择器(E+F)是 E 和 F 具有同一个父元素,并且 F 元素在 E 元素后面且相邻。

语法

.baba + .uncle {
  border: 2px solid #000;
  background-color: pink;
}

五、 伪类选择器

1.常用伪类选择器

选择符描述版本
E:link设置超链接 a 在未被访问前的样式。CSS1
E:visited设置超链接 a 在其链接地址已被访问过时的样式。CSS1
E:hover设置元素在其鼠标悬停时的样式。CSS1/2
E:active设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式。CSS1/2
E:focus设置元素在成为输入焦点(该元素的 onfocus 事件发生)时的样式。CSS1/2
E:lang(fr)匹配使用特殊语言的 E 元素。很少用CSS2
E:not(s)匹配不含有 s 选择符的元素 E。CSS3
E:root 匹配 E元素在文档的根元素。常指 html 元素CSS3
E:first-child匹配父元素的第一个子元素 E。CSS2
E:last-child匹配父元素的最后一个子元素 E。CSS3
E:only-child匹配父元素仅有的一个子元素 E。CSS3
E:nth-child(n)匹配父元素的第 n 个子元素 E。CSS3
E:nth-last-child(n)匹配父元素的倒数第 n 个子元素 E。CSS3
E:first-of-type匹配同类型中的第一个同级兄弟元素 E。CSS3
E:last-of-type匹配同类型中的最后一个同级兄弟元素 E。CSS3
E:only-of-type匹配同类型中的唯一的一个同级兄弟元素 E。CSS3
E:nth-of-type(n)匹配同类型中的第 n 个同级兄弟元素 E。CSS3
E:nth-last-of-type(n)匹配同类型中的倒数第 n 个同级兄弟元素 E。CSS3
E:empty匹配没有任何子元素(包括 text 节点)的元素 E。CSS3
E:checked匹配用户界面上处于选中状态的元素 E。(用于 input type 为 radio 与 checkbox 时)CSS3
E:enabled匹配用户界面上处于可用状态的元素 E。CSS3
E:disabled匹配用户界面上处于禁用状态的元素 E。CSS3
E:target匹配相关 URL 指向的 E 元素。CSS3

2. 动态伪类选择器

选择器类型功能描述
E:link链接伪类选择器E 元素被定义超链接并未被访问过
E:visited链接伪类选择器E 元素被定义超链接并已被访问过
E:active用户行为伪类选择器E 元素被激活,常用于锚点和按钮
E:hover用户行为伪类选择器鼠标停留在 E 元素
E:focus用户行为伪类选择器E 元素获取焦点

3. 链接伪类选择器

简介

根据具有链接属性的 E 元素的被访问情况进行匹配。

例子

index.html

<a href="http://www.bluej.cn">广州蓝景</a>

index.css

a:link {
  color: #ff000;
}

a:link {
  color: #00ffff;
}

4. 用户行为伪类选择器

简介

根据用户对于 E 元素的操作来进行匹配。

例子

index.html

<a href="http://www.bluej.cn">广州蓝景</a> <input name="" />

index.css

*:hover {
  color: #ff0000;
}

*:active {
  color: #00ff00;
}

*:focus {
  color: #0000ff;
}

六、 伪对象选择器

选择器功能描述
E::first-letterE 元素的第一个字
E::first-lineE 元素的第一行字
E::beforeE 元素的第一个子伪元素
E::afterE 元素的最后一个子伪元素
E::selectionE 元素选中目标
E::placeholderE 元素文字占位符

七、 属性选择器

选择符描述出现版本
E[att]选择具有 att 属性的所有元素CSS2
E[att=val]选择具有 att 属性且属性值等于 val 的所有元素CSS2
E[att|=val]选择具有 att 属性且属性值为以 val 开头并用连接符"-"分隔的字符串的所有元素CSS2
E[att~="val"]选择具有 att 属性且属性值为包含 val 单词的所有元素CSS2
E[att*="val"]选择具有 att 属性且属性值为包含 val 字符串的所有元素CSS3
E[att^="val"]选择具有 att 属性且属性值为以 val 开头的字符串的所有元素CSS3
E[att$="val"]选择具有 att 属性且属性值为以 val 结尾的字符串的所有元素CSS3
Last Updated:
Contributors: zerojs