CSS3选择器(全)
最后更新于:2022-04-01 11:56:11
### CSS选择器复习
通用选择器:* 选择到所有的元素
选择子元素:> 选择到元素的直接后代(第一级子元素)
相邻兄弟选择器:+ 选择到紧随目标元素后的第一个元素
普通兄弟选择器:~ 选择到紧随其后的所有兄弟元素
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603f98e9e0.jpg)
**伪元素选择器**:
::first-line 匹配文本块的首行
::first-letter 选择文本块的首字母
伪类选择器:
:before, :after在元素内容前面、后面添加内容(相当于行内元素)
CSS3结构选择器
:nth-child 选择指定索引处的子元素
nth-child(n) 父元素下的第n个子元素
nth-child(odd) 奇数子元素(同nth-child(2n-1))
nth-child(even) 偶数子元素(同nth-child(2n))
nth-child(an+b) 公式
(nth-child从1开始)
:nth-last-child(n) 倒数第n个子元素
:nth-of-type(n) 父元素下的第n个指定类型的子元素
:nth-last-of-type 父元素下的倒数第n个指定类型的子元素
:first-child 选择父元素下的第一个子元素
:last-child 选择父元素下的最后一个子元素
:only-child 选择父元素下唯一的子元素
:only-of-type 选择父元素下指定类型的唯一子元素
:root 选择文档的根目录,返回html
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603f9a34b8.jpg)
div :only-child注意空格(选中div下唯一的子元素)
**伪类选择器**
:link指向未被访问页面的链接设置样式
:visited设置指向已访问页面的链接的样式
:hover鼠标悬停时触发
:active在点击时触发
:enabled 选择启用状态元素
:disabled 选择禁用状态元素
:checked 选择被选中的input元素(单选按钮或复选框)
:default 选择默认元素
:valid、invalid 根据输入验证选择有效或无效的input元素
:in-range、out-of-range 选择指定范围之内或者之外受限的元素
:repuired、optional 根据是否允许:required属性选择input元素
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603f9b654c.jpg)
如果将link的颜色设置的与visited相同,则页面打开时,link的样式被visited样式覆盖,如上,a标签显示的字体颜色为绿色。
但是如果设置为不同的属性,可以呈现出叠加的效果。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603f9c97e3.jpg)
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603f9de323.jpg)
点击a标签时,字体的颜色为黄色。
利用label修改radio的样式:如下:
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Keywords" content="关键词一,关键词二">
<meta name="Description" content="网站描述内容">
<meta name="Author" content="刘艳">
<title></title>
<style>
input[type="radio"]{display: none;}
label{display: inline-block;width: 24px;height: 24px;
border-radius: 50%;border: 1px solid #ccc;margin: 5px;}
:checked + label{background: #00b3ee;}
</style>
</head>
<body>
<input type="radio" name = "fruit" id = "check1"/>
<label for="check1"></label>
<input type="radio" name = "fruit" id = "check2"/>
<label for="check2"></label>
<input type="radio" name = "fruit" id = "check3"/>
<label for="check3"></label>
<input type="radio" name = "fruit" id = "check4"/>
<label for="check4"></label>
</body>
</html>
~~~
实现的效果:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603f9f01a7.jpg)
**:default**
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Keywords" content="关键词一,关键词二">
<meta name="Description" content="网站描述内容">
<meta name="Author" content="刘艳">
<title></title>
<style>
:default{background: #009FE6;}
</style>
</head>
<body>
<form>
<input type="text">
<button>按钮</button>
<input type="submit" value="提交">
</form>
</body>
</html>
~~~
form表单中默认获取到焦点的是Button按钮
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603fa0e467.jpg)
属性选择器
E[attr] 属性名,不确定具体属性值
E[attr=”value”] 指定属性名,并指定其对应属性值
E[attr ~=”value”] 指定属性名,找到的是具有此属性名,且与其它属性名之间用空格隔开,如下:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603fa1f4e4.jpg)
E[attr ^= “value”] 指定属性名,属性值以value开头
E[attr $=”value”] 指定属性名,属性值以value结束
E[attr *=”value”] 指定了属性名,属性值中包含了value
E[attr |= “value”] 指定属性名,属性值以value-开头或者值为value
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-07_570603fa3200d.jpg)