XML CSS選擇符詳解

2021-04-16 00:08:55 字數 4437 閱讀 1737

一.選擇符模式

模式/含義/內容描述

* 匹配任意元素。(通用選擇器)

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 選擇器)

我們用下面的例子來解釋「[s]父元素[/s]」、「[s]子元素[/s]」、「[s]父/子[/s]」及「[s]相鄰[/s]」這幾個概念。

code:[copy to clipboard]

這是乙個段落p的內容!這裡是strong的內容這是乙個段落p的內容!

從以上**中,我們可以找出這樣的關係:

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 兩者是相鄰的。

繼承上面的例項來具體演示一下e f的關係:假如,我們需要將 strong 內的內容二字變為綠色,我們可以有哪些方法呢?

code:[copy to clipboard]div strong /* - 正確。strong 是 div 的「子元素」*/

p > strong /* - 正確。strong 和 p 是「父/子」關係*/

div > strong /* - 錯誤!strong 雖然是 div 的「子(孫)元素」,但兩者乃是「祖孫」關係,而非「父/子」關係,因此不能用 > 符號連線*/

臨近選擇器和通用選擇器:通用選擇器以星號「*」表示,可以用於替代任何 tag 。

例項:code:[copy to clipboard]    h2 + * /*所有緊隨 h2 的元素內的文字都將呈現紅色*/

二.選擇符分類介紹

1.通配選擇符

語法:code:[copy to clipboard]*

說明:通配選擇符。選定文件目錄樹(dom)中的所有型別的單一物件。

假如通配選擇符不是單一選擇符中的唯一組成,「*」可以省略。

示例:code:[copy to clipboard]*[lang=fr]

*.div

2.型別選擇符

語法:code:[copy to clipboard]e

說明:型別選擇符。以文件語言物件(element)型別作為選擇符。

示例:code:[copy to clipboard]td

a 3.屬性選擇符

語法:code:[copy to clipboard]e [ attr ]

e [ attr = value ]

e [ attr ~= value ]

e [ attr |= value ]

說明:屬性選擇符。

選擇具有 attr 屬性的 e

選擇具有 attr 屬性且屬性值等於 value 的 e

選擇具有 attr 屬性且屬性值為一用空格分隔的字詞列表,其中乙個等於 value 的 e 。這裡的 value 不能包含空格

選擇具有 attr 屬性且屬性值為一用連字元分隔的字詞列表,由 value 開始的 e

示例:code:[copy to clipboard]h[title]

/* 所有具有title屬性的h物件 */

span[class=demo]

div[speed="fast"][dorun="no"]

code:[copy to clipboard]e1 e2

說明:包含選擇符。選擇所有被 e1 包含的 e2 。即 e1.contains(e2)==true 。

示例:code:[copy to clipboard]table td

div.sub a

5.子物件選擇符

語法:code:[copy to clipboard]e1 > e2

說明:子物件選擇符。選擇所有作為 e1 子物件的 e2 。

示例:code:[copy to clipboard]body > p

/* 所有作為body的子物件的p物件字型尺寸為14px */

div ul>li p

6.id選擇符

語法:code:[copy to clipboard]#id

說明:id選擇符。以文件目錄樹(dom)中作為物件的唯一識別符號的 id 作為選擇符。

示例:code:[copy to clipboard]#note

7.類選擇符

語法:code:[copy to clipboard]e.classname

說明:類選擇符。在html中可以使用此種選擇符。其效果等同於e [ class ~= classname ] 。請參閱屬性選擇符( attribute selectors )。

在ie5+,可以為物件的 class 屬性(特性)指定多於乙個值( classname ),其方法是指定用空格隔開的一組樣式表的類名。例如:。

示例:code:[copy to clipboard]div.note

/* 所有class屬性值等於(包含)"note"的div物件字型尺寸為14px */

.dream

/* 所有class屬性值等於(包含)"note"的物件字型尺寸為14px */

8.選擇符分組

語法:code:[copy to clipboard]e1 , e2 , e3

說明:選擇符分組。將同樣的定義應用於多個選擇符,可以將選擇符以逗號分隔的方式並為組。

示例:code:[copy to clipboard].td1,div a,body

td,div,a

9.偽類及偽物件選擇符

語法:code:[copy to clipboard]e : pseudo-classes

e : pseudo-elements

說明:偽類及偽物件選擇符。

偽類選擇符。請參閱偽類( pseudo-classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。

偽物件選擇符。請參閱偽物件( pseudo-elements )[:first-letter :first-line :before :after]。

示例:code:[copy to clipboard]div:first-letter

a.fly :hover

**自 閃動聯盟http://www.85flash.com/get/css/2006-8-23/170845705.htm

英文官方資料 http://www.w3.org/tr/css21/selector.html

jQuery選擇符 XPath選擇符

說明 jquery支援一組基本的xpath選擇符 可以和css選擇符一起使用 jquery無論對什麼文件都可以使用xpath和 css選擇符。1.屬性選擇符 2 特點 允許以類似正規表示式的語法來標識字串的開始 和結尾 也可以使用 表示字串的任意位置。1 a href mailto 表示取得以mai...

CSS選擇符 屬性選擇符

使用屬性選擇器可以篩選出設定了特定屬性的標籤。例如選取所有設定了title屬性的 img title 這種選擇符的第一部分是標籤名 img 隨後是屬性名,放在方括號裡 title css不限制屬性選擇符只能使用標籤名,也可以使用類。例如 photo title 用於選取類為photo,而且設定了ti...

CSS選擇符 型別選擇符

h1用於選取特定html標籤的選擇符,叫型別選擇符或元素選擇符。這種選擇符的作用特別大。能把樣式應用到網頁中的每個目標標籤上。使用這種選擇符,只需少量工作就能大幅修改網頁的外觀。假如想讓網頁中每個段落都使用相同的字型 顏色和字型大小,只需編寫乙個選擇符為p 表示標籤 的樣式即可。html 最基本的佐...