css 中的选择器
- Type Selectors
- Universal Selector
- Descendant Selectors
- Child Selectors
- Adjacent Sibling Selectors
- Attribute Selectors
- ID Selectors
- Class Selectors
- Pseudo Selectors
- Grouping
1.Type Selectors(类型选择符)
语法:
E { sRules }
说明:
类型选择符。以文档语言对象(Element)类型作为选择符。
示例:
td { font-size:14px; width:120px; }
a { text-decoration:none; }
2.Universal Selector(通配选择符)
语法:
* { sRules }
说明:
通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。
假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。
示例:
*[lang=fr] { font-size:14px; width:120px; }
*.div { text-decoration:none; }
3.Descendant Selectors(包含选择符)
语法:
E1 E2 { sRules }
说明:
包含选择符。选择所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。
示例:
table td { font-size:14px; }
div.sub a { font-size:14px; }
4.Child Selectors(子对象选择符)
语法:
E1 > E2 { sRules }
说明:
子对象选择符。选择所有作为 E1 子对象的 E2 。
示例:
body > p { font-size:14px; }
/* 所有作为body的子对象的p对象字体尺寸为14px */
div ul>li p { font-size:14px; }
5.Adjacent Sibling Selectors(相邻选择符)
语法:
E1 + E2 { sRules }
说明:
相邻选择符。选择紧贴在 E1 之后的所有 E2 。 E1 和 E2 在文档目录结构树(DOM)中有共同的父对象。
示例:
div + p { font-size:14px; }
/* 所有紧贴在div对象之后的p对象的字体尺寸为14px */
div.fly + p { font-size:14px; }
6.Attribute Selectors(属性选择符)
语法:
E [ attr ] { sRules }
E [ attr = value ] { sRules }
E [ attr ~= value ] { sRules }
E [ attr |= value ] { sRules }
说明:
属性选择符。
选择具有 attr 属性的 E
选择具有 attr 属性且属性值等于 value 的 E
选择具有 attr 属性且属性值为一用空格分隔的字词列表,其中一个等于 value 的 E 。这里的 value 不能包含空格
选择具有 attr 属性且属性值为一用连字符分隔的字词列表,由 value 开始的 E
示例:
h[title] { color: blue; }
/* 所有具有title属性的h对象 */
span[class=demo] { color: red; }
div[speed="fast"][dorun="no"] { color: red; }
a[rel~="copyright"] { color:black; }
7.ID Selectors(ID选择符)
语法:
#ID { sRules }
说明:
ID选择符。以文档目录树(DOM)中作为对象的唯一标识符的 ID 作为选择符。
示例:
#note { font-size:14px; width:120px;}
8.Class Selectors(类选择符)
语法:
E.className { sRules }
说明:
类选择符。在HTML中可以使用此种选择符。其效果等同于E [ class ~= className ] 。请参阅属性选择符( Attribute Selectors )。
在IE5+,可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:<div class="class1 class2">。
示例:
div.note { font-size:14px; }
/* 所有class属性值等于(包含)"note"的div对象字体尺寸为14px */
.dream { font-size:14px; }
/* 所有class属性值等于(包含)"note"的对象字体尺寸为14px */
9.Pseudo Selectors(伪类及伪对象选择符)
语法:
E : Pseudo-Classes { sRules }
E : Pseudo-Elements { sRules }
说明:
伪类及伪对象选择符。
伪类选择符。附录1。
伪对象选择符。附录2。
示例:
div:first-letter { font-size:14px; }
a.fly :hover { font-size:14px; color:red; }
10.Grouping(选择符分组)
语法:
E1 , E2 , E3 { sRules }
说明:
选择符分组。将同样的定义应用于多个选择符,可以将选择符以逗号分隔的方式并为组。
示例:
.td1,div a,body { font-size:14px; }
td,div,a { font-size:14px; }
附录1(伪类选择符)
:link
语法:
Selector : link { sRules }
说明:
设置 a 对象在未被访问前的样式。
默认值由浏览器决定。
对于无 href 属性(特性)的 a 对象,此伪类不发生作用。
请参阅 body 对象的 link 属性(特性)和 document 对象的 linkColor 特性。
IE3将 :link 伪类的样式表属性作用于 visited 伪类。
示例:
a:link { font-size: 14pt; text-decoration: underline; color: blue; }
:hover
语法:
Selector : hover { sRules }
说明:
设置对象在其鼠标悬停时的样式。
在CSS1中此伪类仅可用于 a 对象。对于无 href 属性(特性)的 a 对象,此伪类不发生作用。
在CSS2中此伪类可以应用于任何对象。
示例:
a:hover { font-size: 14pt; text-decoration: underline; color: blue; }
a:hover span{ color:red; }
:active
语法:
Selector : active { sRules }
说明:
设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式。
在CSS1中此伪类仅可用于 a 对象。对于无 href 属性(特性)的 a 对象,此伪类不发生作用。
在CSS2中此伪类可以应用于任何对象。
并且 :active 可以和 :link 以及 :visited 状态同时发生。
:visited
语法:
Selector : visited { sRules }
说明:
设置 a 对象在其链接地址已被访问过时的样式。
IE3将 :link 伪类的样式表属性作用于 :visited 伪类。
默认值由浏览器决定。定义网页过期时间或用户清空历史记录将影响此伪类的作用。
对于无 href 属性(特性)的 a 对象,此伪类不发生作用。
请参阅 body 对象的 vlink 属性(特性)和 document 对象的 vlinkColor 特性。
示例:
a:visited { font-size: 14pt; text-decoration: underline; color: blue; }
:focus
语法:
Selector : focus { sRules }
说明:
设置对象在成为输入焦点(该对象的 onfocus 事件发生)时的样式。
示例:
a:focus { font-size: 14pt; text-decoration: underline; color: blue; }
a:focus img { border: thin solid green }
:first-child
语法:
Selector : first-child { sRules }
说明:
设置 E 的第一个子对象的样式。
示例:
p a:first-child { color: green }
table td:first-child { width:200px; }
:first
语法:
Selector : first { sRules }
说明:
设置页面容器第一页使用的样式。仅用于 @page 规则。
示例:
@page :first { margin: 4cm }
:left
语法:
Selector : left { sRules }
说明:
设置页面容器位于装订线左边的所有页面使用的样式。仅用于 @page 规则。
示例:
@page :left { margin: 4cm }
:right
语法:
Selector : right { sRules }
说明:
设置页面容器位于装订线右边的所有页面使用的样式。仅用于 @page 规则。
示例:
@page :right { margin: 4cm }
:lang
语法:
Selector : lang { sRules }
说明:
设置对象使用特殊语言的内容的样式。
示例:
blockquote:lang(fr) { quotes: '?' ' ?' }
/* 使用法语显示由quotes属性指定的法语的嵌套标记 */
附录2(伪对象选择符)
:first-letter
语法:
Selector : first-letter { sRules }
说明:
设置对象内的第一个字符的样式。
此伪对象仅作用于块对象。内联要素要使用该属性,必须先设定对象的 height 或 width 属性,或者设定 position 属性为 absolute ,或者设定 display 属性为 block 。
在此伪对象中配合使用 font-size 属性和 float 属性可以制作首字下沉效果。
示例:
p a:first-letter { color: green }
div:first-letter { color:red;font-size:16px;float:left; }
:first-line
语法:
Selector : first-line { sRules }
说明:
设置对象内的第一行的样式。
此伪对象仅作用于块对象。内联要素要使用该属性,必须先设定对象的 height 或 width 属性,或者设定 position 属性为 absolute ,或者设定 display 属性为 block 。
如果未强制指定对象的 width 属性, 首行的内容长度可能不是固定的。
示例:
p a:first-line { color: green }
div:first-line { color:red;font-size:16px; }
:before
语法:
Selector : before { sRules }
说明:
用来和 content 属性一起使用,设置在对象前(依据对象树的逻辑结构)发生的内容。
示例:
em:before { content: url("ding.wav"); }
:after
语法:
Selector : after { sRules }
说明:
用来和 content 属性一起使用,设置在对象后(依据对象树的逻辑结构)发生的内容。
示例:
table:after { content: END OF TABLE }