CSS3 选择器归纳
文章目录
一.CSS之前的选择器
1.元素选择器
文档的元素就是最基本的选择器
h1{
color:red;
}
2.id选择器
可以为标有特定id的元素指定特定的样式
#box{
background:red;
}
3.类(class)选择器
为元素中属性有class的,指定样式
.box{
background:red;
}
4.属性选择器
可以为拥有指定属性的元素设置样式,不仅仅限于class和id属性
input[type="text"]{
width:200px;
}
5.派生选择器
跟距元素在其位置的上下文关系来定义样式,也就是有个特点,父子关系
ul li{
display:flex;
}
6.相邻兄弟选择器
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器
h1 + p{
margin-top:50px
}
可以这么理解这个选择器:选择紧接在h1元素后出现的p标签,并且h1和p具有共同的父元素
二.CSS3新增选择器
1.属性选择器
属性 | 说明 |
---|---|
a[title] | 只使用属性名,但没有确定任何属性值 |
a[title=“value”] | 指定属性名,并指定该属性的属性值 |
a[title~=“value”] | 指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写 |
a[title^=“value”] | 指定了属性名,并且有属性值,属性值是以value开头的 |
a[title$=“value”] | 指定了属性名,并且有属性值,而且属性值是以value结束的 |
a[title*=“value”] | 指定了属性名,并且有属性值,而且属值中包含了value |
a[title|=“value”] | 指定了属性名,并且属性值是value或者以“value-”开头的值; |
2.结构性伪类选择器
属性 | 说明 |
---|---|
X:first-child | 其父元素的首个子元素。IE7就可以支持 |
X:last-child | 匹配父元素中最后一个X元素 |
X:nth-child(n) | 用于匹配索引值为n的子元素。索引值从1开始 |
X:only-child | 这个伪类一般用的比较少,比如上述代码匹配的是div下的有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。 |
X:nth-last-child(n) | 从最后一个开始算索引。 |
X:first-of-type | 匹配同级兄弟元素中的第一个X元素; |
X:last-of-type | 匹配同级兄弟元素中的最后一个X元素 |
X:nth-of-type(n) | 匹配同类型中的第n个同级兄弟元素X |
X:only-of-type | 匹配属于同类型中唯一兄弟元素的X |
X:nth-last-of-type(n) | 匹配同类型中的倒数第n个同级兄弟元素 |
X :root | 匹配文档的根元素。在HTML(标准通用标记语言下的一个应用)中,根元素永远是HTML |
X:empty | 匹配没有任何子元素(包括包含文本)的元素X |
3.目标伪类选择器
:target 选择匹配E的所有元素,且匹配元素被相关URL指向
4.UI 元素状态伪类选择器
(1) E:enabled 匹配所有用户界面(form表单)中处于可用状态的E元素
(2) E:disabled 匹配所有用户界面(form表单)中处于不可用状态的E元素
(3) E:checked 匹配所有用户界面(form表单)中处于选中状态的元素E
(4) ::selection 匹配E元素中被用户选中或处于高亮状态的部分
5.动态伪类选择器
E:focus 用户行为选择器 选择匹配的E元素,而且匹配元素获取焦点
6.否定伪类选择器
E:not(s) (IE6-8浏览器不支持:not()选择器。)匹配所有不匹配简单选择符s的元素E
7.层级选择器
(1) E>F 子选择器
选择匹配的F元素,且匹配的F元素所匹配的E元素的子元素
(2) E + F相邻兄弟选择器
选择匹配的F元素,且匹配的F元素紧位于匹配的E元素的后面
(3) E ~ F 通用选择器
选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素