* 匹配任意元素。(通用选择器) E 匹配任意元素 E (例如一个类型为 E 的元素)。(类型选择器) E F 匹配元素 E 的任意后代元素 F 。(后代选择器) E > F 匹配元素 E 的任意子元素 F 。(子选择器) E:first-child 当元素 E 是它的父元素中的第一个子元素时,匹配元素 E 。(:first-child 伪类) E:link E:visited 如果 E 是一个目标还没有访问过(:link)或者已经访问过(:visited)的超链接的源锚点时匹配元素 E 。(link 伪类) E:active E:hover E:focus 在确定的用户动作中匹配 E 。(动态伪类) E:lang(c) 如果类型为 E 的元素使用了(人类)语言 c (文档语言确定语言是如何被确定的),则匹配该元素。(:lang() 伪类) E + F 如果一个元素 E 直接在元素 F 之前,则匹配元素 F 。(临近选择器) E[foo] 匹配具有”foo”属性集(不考虑它的值)的任意元素 E 。(属性选择器) E[foo="warning"] 匹配其“foo”属性值严格等于“warning”的任意元素 E 。(属性选择器) E[foo~="warning"] 匹配其“foo”属性值为空格分隔的值列表,并且其中一个严格等于“warning”的任意元素 E 。(属性选择器) E[lang|="en"] 匹配其“lang”属性具有以“en”开头(从左边)的值的列表的任意元素 E 。(属性选择器) DIV.warning 仅 HTML。用法同 DIV[class~="warning"]。(类选择器) E#myid 匹配 ID 等于“myid”的任意元素 E 。(ID 选择器)
从以上代码中,我们可以找出这样的关系: [list] [*] h1 和 p 同为 div 的“儿子”,两者分别同 div 形成“父/子”关系。 [*] h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之内) [*] div 是 h1 和 p 的“父元素”。 [*] strong 和 p 形成“父/子”关系,strong 的“父元素”是 p 。 [*] 但 strong 和 div 并非“父/子”关系,而是“祖孙”关系,但 strong 依然是 div 的“子(孙)元素”。 [*] div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孙)元素”。 [*] h1 和 p 两者是相邻的。 [/list]
示例: td { font-size:14px; width:120px; } a { text-decoration:none; }
3.属性选择符
语法: 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