根据css选择器的难易程度,我们可以把css选择器分为三类,第一类是基本选择器,第二类是属性选择器,第三类是伪类选择器。
下面是我对三种选择器的使用方法做个简单总结。
一. 基本选择器
1. 通配符选择器(*)
2. 元素选择器(E)
3. 类选择器(.className)
这里包括多类选择器(.className1.className2) 如:.first.last{color:red;}
4. ID选择器(#ID)
5. 后代选择器(E F)
6. 子元素选择器(E > F)IE6不支持
7. 相邻兄弟元素选择器(E + F)IE6不支持
8. 通用兄弟选择器(E ~ F) IE6不支持 CSS3新增
9. 群组选择器(selector1,selector2...selectorN)
注:相邻兄弟元素选择器和通用兄弟选择器的区别
相邻兄弟元素选择器是:选择紧接在一个元素后面的元素,而且他们具有相同的父元素。
通用兄弟选择器是:选择某元素后面的所有兄弟元素,而且他们具有相同的父元素。
二. 属性选择器
1. E[attr]:只使用属性名,但没有属性值;
2. E[attr="value"]:指定属性名,并指定了属性值;
3. E[attr~="value"]:指定属性名,并指定了属性值;此属性值是一个词列表,并以空格隔开,其中词列表中包含了一个value词;
4. E[attr^="value"]:指定属性名,并指定了属性值;属性值是以value开头;
5. E[attr$="value"]:指定属性名,并指定了属性值;属性值是以value结尾;
6. E[attr*="value"]:指定属性名,并指定了属性值;属性值中包含value;
7. E[attr|="value"]:指定属性名,并指定了属性值;属性值是value或者以“value”开头的值;
注:IE6不支持所有属性选择性
三. 伪类
:hover在IE6下只有a元素支持,:active 和 :focus在IE6-7下不被支持。
:checked, :enabled, :disabled这三种选择器不被IE6-8支持。
:fist-child选择某个元素的第一个子元素;
:last-child选择某个元素的最后一个子元素;
:nth-child()选择某个元素的一个或多个特定的子元素;
:nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;
:nth-of-type()选择指定的元素;
:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算;
:first-of-type选择一个上级元素下的第一个同类子元素;
:last-of-type选择一个上级元素的最后一个同类子元素;
:only-child选择的元素是它的父元素的唯一一个了元素;
:only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素;
:empty选择的元素里面没有任何内容。