[Home]   [TOC]

Study_CSS_Selector  
CSS Selector Study
Updated Aug 31, 2012 by jht5...@gmail.com

序号 选择器 含义
1. * 通用元素选择器,匹配任何元素
2. E 标签选择器,匹配所有使用E标签的元素
3. .info class选择器,匹配所有class属性中包含info的元素
4. #footer id选择器,匹配所有id属性等于footer的元素
5. E,F 多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔
6. E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔
7. E > F 子元素选择器,匹配所有E元素的子元素F
8. E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F
9. E[att] 匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如“[cheacked]”。以下同。)
10. E[att=val] 匹配所有att属性等于“val”的E元素
11. E[att~=val] 匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素
12. E[att|=val] 匹配所有att属性具有多个连字号分隔(hyphen-separated)的值、其中一个值以“val”开头的E元素,主要用于lang属性,比如“en”、“en-us”、“en-gb”等等
13. E:first-child 匹配父元素的第一个子元素
14. E:link 匹配所有未被点击的链接
15. E:visited 匹配所有已被点击的链接
16. E:active 匹配鼠标已经其上按下、还没有释放的E元素
17. E:hover 匹配鼠标悬停其上的E元素
18. E:focus 匹配获得当前焦点的E元素
19. E:lang(c) 匹配lang属性等于c的E元素
20. E:first-line 匹配E元素的第一行
21. E:first-letter 匹配E元素的第一个字母
22. E:before 在E元素之前插入生成的内容
23. E:after 在E元素之后插入生成的内容
24. E ~ F 匹配任何在E元素之后的同级F元素
25. E[att^=”val”] 属性att的值以"val"开头的元素
26. E[att$=”val”] 属性att的值以"val"结尾的元素
27. E[att*=”val”] 属性att的值包含"val"字符串的元素
28. E:enabled 匹配表单中激活的元素
29. E:disabled 匹配表单中禁用的元素
30. E:checked 匹配表单中被选中的radio(单选框)或checkbox(复选框)元素
31. E::selection 匹配用户当前选中的元素
32. E:root 匹配文档的根元素,对于HTML文档,就是HTML元素
33. E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1
34. E:nth-last-child(n) 匹配其父元素的倒数第n个子元素,第一个编号为1
35. E:nth-of-type(n) :nth-child()作用类似,但是仅匹配使用同种标签的元素
36. E:nth-last-of-type(n) :nth-last-child() 作用类似,但是仅匹配使用同种标签的元素
37. E:last-child 匹配父元素的最后一个子元素,等同于:nth-last-child(1)
38. E:first-of-type 匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)
39. E:last-of-type 匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)
40. E:only-child 匹配父元素下仅有的一个子元素,等同于:first-child:last-child:nth-child(1):nth-last-child(1)
41. E:only-of-type 匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type:nth-of-type(1):nth-last-of-type(1)
42. E:empty 匹配一个不包含任何子元素的元素,注意,文本节点也被看作子元素
43. E:not(s) 匹配不符合当前选择器的任何元素
44. E:target 匹配文档中特定"id"点击后的效果

ID选择器

ID选择器是通过元素的ID来进行选择的,对于同一个HTML页面,每一个元素的ID都是惟一的,所以ID选择器具有唯一性 在样式表中,ID选择器前面以“#”进行标识,下面举例说明

/*ID选择器的CSS样式*/
#content{
    font-size:14px;
}

/*HTML中的内容*/
<div id="content">
这是一个ID选择器的例子
</div>

网页的预览效果是:“这是一个ID选择器的例子”这句话的字体大小是14像素

类选择器

类选择器是通过元素的class属性值来进行选择的,多个元素可以同时具有相同的class属性值,所以它可以实现“一对多”的样式控制。凡是具有相同class属性值的元素都会应用对应的样式。 在样式表中,类选择器前面以“.”进行标识,下面举例说明

/*类选择器的CSS样式*/
.content{
    background:# FF0000 ;  //背景色为红色
}

/*HTML中的内容*/
<div class="content">
这是一个类选择器的例子1
</div>

<div>
下面是一个段落
<p class="content">
这是一个类选择器的例子2
</p>
</div>

网页的预览效果是:“这是一个类选择器的例子1”和“这是一个类选择器的例子2”两句话的背景色是红色的,而“下面是一个段落”这句话没有样式。

标签选择器

标签选择器是通过元素的标签进行选择的。大家都知道HTML页面中的元素都是通过标签进行整合的,具有相同标签的元素就会应用相同的样式 在样式表中,标签选择器的前面什么都不用加,只需写出标签名即可,下面举例说明

/*标签选择器的CSS样式*/
p{
    color:blue ; 
    fontsize-12px;
}

/*HTML中的内容*/
<p>段落1</p>

<div class="example">
下面是一个段落
<p>段落2</p>
</div>

网页的预览效果是:“段落1”和“段落2”两句话的字体是蓝色的,大小是12像素;“下面是一个段落”这句话没有任何样式

伪类选择器

最常用的伪类选择器就是对连接标签<a>应用的选择器,下面举例说明

/*伪类选择器的CSS样式*/
a:link{text-decoration:none;}
a:visited{text-decoration:none;}
a:hover{text-decoration:underline;}

/*HTML中的内容*/
<a href="http://www.baidu.com" target="_blank">连接到百度</a>

网页的预览效果是:连接默认没有下划线,当鼠标悬停时有下滑下,访问过后没有下划线

属性选择器

属性选择器是根据特定标签的特定属性值或者是属性的有无来进行选择的,举例如下

/*属性选择器的CSS样式*/
p[title]{font-size=14px;}
或者
p[title="123"]{ font-size=18;}

如果<p>标签有“title”属性,则将该段设为字体14像素;如果<p>标签的“title”属性值为“123”,则将该段设为字体18像素

后代选择器

后代选择器是通过指定父代的所有指定后代(包括直接后代和深层次后代)进行选择的,它通常由两个常用标签组合形成。通过使用后代选择器,可以实现更精确的样式控制,是非常常用的一种CSS选择器。 父选择器和后代选择器之间以空格分隔,下面举例说明:

/*后代选择器的CSS样式*/
.father p{
    color:blue;
}

/*HTML中的内容*/
<div class="father">
这是父元素
<p>
这是子元素
</p>
</div>

网页的预览效果是:" 这是父元素 "这句话没有样式,而“这是子元素”这句话的字体颜色是蓝色

子选择器

子选择器与后代选择器非常类似,他们的区别是:后代选择器将样式用到父元素的所有后代当中(包括直接后代和深层次后代),而子选择器只将样式用到父元素的直接后代元素,只有“儿子”能用到、“孙子”以及“重孙子”用不到。 父选择器和子选择器之间以“>”分隔,下面举例说明

/*子选择器的CSS样式*/
.father>.son{
    background:blue;
}
/*HTML中的内容*/
<div class="father">
    <div class="son">
    这是子元素
        <div class="son">
        这是孙子元素
        </div>
    </div>
</div>

网页的预览效果是:"这是子元素"这句话的背景色是蓝色的;“这是孙子元素”这句话的背景色是白色的(没有样式) 如果将“>”改为空格 即 “.father .son”,则两句话的背景色都是蓝色的。

通用选择器

通用选择器即应用于所有标签的选择器,用“*”表示,举例如下:

/*通用择器的CSS样式*/
*{
    margin:0;
    padding:0;
}

将所有“盒子”的外边距和内边距都设为0,这句话通常用在CSS样式表的开头,用作初始化。

参考资料

[1]. http://blog.csdn.net/wwwwenhuan/article/details/7649749
[2]. http://www.ruanyifeng.com/blog/2009/03/css_selectors.html