一.選擇符模式
模式/含義/內(nèi)容描述
*
匹配任意元素。(通用選擇器)
E
匹配任意元素 E (例如一個(gè)類(lèi)型為 E 的元素)。(類(lèi)型選擇器)
E F
匹配元素 E 的任意后代元素 F 。(后代選擇器)
E > F
匹配元素 E 的任意子元素 F 。(子選擇器)
E:first-child
當(dāng)元素 E 是它的父元素中的第一個(gè)子元素時(shí),匹配元素 E 。(:first-child 偽類(lèi))
E:link E:visited
如果 E 是一個(gè)目標(biāo)還沒(méi)有訪問(wèn)過(guò)(:link)或者已經(jīng)訪問(wèn)過(guò)(:visited)的超鏈接的源錨點(diǎn)時(shí)匹配元素 E 。(link 偽類(lèi))
E:active E:hover E:focus
在確定的用戶(hù)動(dòng)作中匹配 E 。(動(dòng)態(tài)偽類(lèi))
E:lang(c)
如果類(lèi)型為 E 的元素使用了(人類(lèi))語(yǔ)言 c (文檔語(yǔ)言確定語(yǔ)言是如何被確定的),則匹配該元素。(:lang() 偽類(lèi))
E + F
如果一個(gè)元素 E 直接在元素 F 之前,則匹配元素 F 。(臨近選擇器)
E[foo]
匹配具有”foo”屬性集(不考慮它的值)的任意元素 E 。(屬性選擇器)
E[foo="warning"]
匹配其“foo”屬性值嚴(yán)格等于“warning”的任意元素 E 。(屬性選擇器)
E[foo~="warning"]
匹配其“foo”屬性值為空格分隔的值列表,并且其中一個(gè)嚴(yán)格等于“warning”的任意元素 E 。(屬性選擇器)
E[lang|="en"]
匹配其“l(fā)ang”屬性具有以“en”開(kāi)頭(從左邊)的值的列表的任意元素 E 。(屬性選擇器)
DIV.warning
僅 HTML。用法同 DIV[class~="warning"]。(類(lèi)選擇器)
E#myid
匹配 ID 等于“myid”的任意元素 E 。(ID 選擇器)
Quote
From:
http://www.w3.org/TR/CSS2/selector.html
我們用下面的例子來(lái)解釋“父元素”、“子元素”、“父/子”及“相鄰”這幾個(gè)概念。
<div title="這是一個(gè)div">
<h1>這是是h1的內(nèi)容</h1>
<p>這是一個(gè)段落p的內(nèi)容!<strong>這里是strong的內(nèi)容</strong>這是一個(gè)段落p的內(nèi)容!</p>
</div>
從以上代碼中,我們可以找出這樣的關(guān)系:
h1 和 p 同為 div 的“兒子”,兩者分別同 div 形成“父/子”關(guān)系。
h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之內(nèi))
div 是 h1 和 p 的“父元素”。
strong 和 p 形成“父/子”關(guān)系,strong 的“父元素”是 p 。
但 strong 和 div 并非“父/子”關(guān)系,而是“祖孫”關(guān)系,但 strong 依然是 div 的“子(孫)元素”。
div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孫)元素”。
h1 和 p 兩者是相鄰的。
繼承上面的實(shí)例來(lái)具體演示一下E F的關(guān)系:假如,我們需要將 strong 內(nèi)的內(nèi)容二字變?yōu)榫G色,我們可以有哪些方法呢?
div strong {color:green;} /* - 正確。strong 是 div 的“子元素”*/
p > strong {color:green;} /* - 正確。strong 和 p 是“父/子”關(guān)系*/
div > strong {color:green;} /* - 錯(cuò)誤!strong 雖然是 div 的“子(孫)元素”,但兩者乃是“祖孫”關(guān)系,而非“父/子”關(guān)系,因此不能用 > 符號(hào)連接*/
臨近選擇器和通用選擇器:通用選擇器以星號(hào)“*”表示,可以用于替代任何 tag 。
實(shí)例:
h2 + * { color:green }/*所有緊隨 h2 的元素內(nèi)的文字都將呈現(xiàn)紅色*/
二.選擇符分類(lèi)介紹
1.通配選擇符
語(yǔ)法:
* { sRules }
說(shuō)明:
通配選擇符。選定文檔目錄樹(shù)(DOM)中的所有類(lèi)型的單一對(duì)象。
假如通配選擇符不是單一選擇符中的唯一組成,“*”可以省略。
示例:
*[lang=fr] { font-size:14px; width:120px; }
*.div { text-decoration:none; }
2.類(lèi)型選擇符
語(yǔ)法:
E { sRules }
說(shuō)明:
類(lèi)型選擇符。以文檔語(yǔ)言對(duì)象(Element)類(lèi)型作為選擇符。
示例:
td { font-size:14px; width:120px; }
a { text-decoration:none; }
3.屬性選擇符
語(yǔ)法:
E [ attr ] { sRules }
E [ attr = value ] { sRules }
E [ attr ~= value ] { sRules }
E [ attr |= value ] { sRules }
說(shuō)明:
屬性選擇符。
選擇具有 attr 屬性的 E
選擇具有 attr 屬性且屬性值等于 value 的 E
選擇具有 attr 屬性且屬性值為一用空格分隔的字詞列表,其中一個(gè)等于 value 的 E 。這里的 value 不能包含空格
選擇具有 attr 屬性且屬性值為一用連字符分隔的字詞列表,由 value 開(kāi)始的 E
示例:
h[title] { color: blue; }
/* 所有具有title屬性的h對(duì)象 */
span[class=demo] { color: red; }
div[speed="fast"][dorun="no"] { color: red; }
a[rel~="copyright"] { color:black; }
4.包含選擇符
語(yǔ)法:
E1 E2 { sRules }
說(shuō)明:
包含選擇符。選擇所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。
示例:
table td { font-size:14px; }
div.sub a { font-size:14px; }
5.子對(duì)象選擇符
語(yǔ)法:
E1 > E2 { sRules }
說(shuō)明:
子對(duì)象選擇符。選擇所有作為 E1 子對(duì)象的 E2 。
示例:
body > p { font-size:14px; }
/* 所有作為body的子對(duì)象的p對(duì)象字體尺寸為14px */
div ul>li p { font-size:14px; }
6.ID選擇符
語(yǔ)法:
#ID { sRules }
說(shuō)明:
ID選擇符。以文檔目錄樹(shù)(DOM)中作為對(duì)象的唯一標(biāo)識(shí)符的 ID 作為選擇符。
示例:
#note { font-size:14px; width:120px;}
7.類(lèi)選擇符
語(yǔ)法:
E.className { sRules }
說(shuō)明:
類(lèi)選擇符。在HTML中可以使用此種選擇符。其效果等同于E [ class ~= className ] 。請(qǐng)參閱屬性選擇符( Attribute Selectors )。
在IE5+,可以為對(duì)象的 class 屬性(特性)指定多于一個(gè)值( className ),其方法是指定用空格隔開(kāi)的一組樣式表的類(lèi)名。例如:<div class="class1 class2">。
示例:
div.note { font-size:14px; }
/* 所有class屬性值等于(包含)"note"的div對(duì)象字體尺寸為14px */
.dream { font-size:14px; }
/* 所有class屬性值等于(包含)"note"的對(duì)象字體尺寸為14px */
8.選擇符分組
語(yǔ)法:
E1 , E2 , E3 { sRules }
說(shuō)明:
選擇符分組。將同樣的定義應(yīng)用于多個(gè)選擇符,可以將選擇符以逗號(hào)分隔的方式并為組。
示例:
.td1,div a,body { font-size:14px; }
td,div,a { font-size:14px; }
9.偽類(lèi)及偽對(duì)象選擇符
語(yǔ)法:
E : Pseudo-Classes { sRules }
E : Pseudo-Elements { sRules }
說(shuō)明:
偽類(lèi)及偽對(duì)象選擇符。
偽類(lèi)選擇符。請(qǐng)參閱偽類(lèi)( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。
偽對(duì)象選擇符。請(qǐng)參閱偽對(duì)象( Pseudo-Elements )[:first-letter :first-line :before :after]。
示例:
div:first-letter { font-size:14px; }
a.fly :hover { font-size:14px; color:red; }