英文原文:
http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/
中文翻譯:
http://www.dudo.org/article.asp?id=197
注:本文寫于2006年1月,當時IE7、IE8和Firefox3還未發行,文中所有說的瀏覽器支持均未包括這三個版本的瀏覽器。在IE8和Firefox3中,文中的大部分選擇符已經被支持[dudo注]
在2005年的9月和10月,我先后發表了幾篇關于CSS2.1中選擇符的介紹文章。大體看來那幾篇文章中介紹過的大部分選擇符都已經可以在像Mozilla/Firefox,Safari和Opera等現代瀏覽器中使用了。我們現在要做的就是等待Internet Explorer盡快趕上來,那我們就可以盡情地使用CSS2.1中的選擇符了。好在Internet Explorer在其第7個版本中已經在盡力追趕了,至少在某些擴展方面。
如果我們再向前看一點,在CSS3中還有功能更加強大的選擇符等待我們去發掘和使用。CSS3中的很多選擇符已經在現代瀏覽器中得到很好的應用(IE8.0中也已經部分地支持了CSS3,dudo注),但是這些基本功能上的支持還遠遠不能滿足開發者使用的要求。但是在某些情況下使用他們可以帶來很好的超前體驗,因此我認為了解一下CSS 3新增選擇符是如何使用還是有益處的。
本文中對選擇符描述主要是參考了《2005年12月15日W3C制定的選擇符草稿》。草稿中講到的新的選擇符可能會在CSS的第3個版本中出現,但是也可能會出現在其他語言中。如果你是幾個月前甚至是幾年前讀過這篇草稿,那么現在你應該再去看一下是不是已經出現了最新版本了。
這里我不打算去解釋CSS選擇符工作的基本原理。如果你想重要復習一下的話,最好從《細說CSS2.1中的選擇符》開始。
首先,快速瀏覽一下CSS3中新增的選擇符:
CSS3選擇符語法概覽:
選擇符類型
表達式
描述
子串匹配的屬性選擇符
E[att^="val"]
匹配具有att屬性、且值以val開頭的E元素
子串匹配的屬性選擇符
E[att$="val"]
匹配具有att屬性、且值以val結尾的E元素
子串匹配的屬性選擇符
E[att*="val"]
匹配具有att屬性、且值中含有val的E元素
結構性偽類
E:root
匹配文檔的根元素。在HTML中,根元素永遠是HTML
結構性偽類
E:nth-child(n)
匹配父元素中的第n個子元素E
結構性偽類
E:nth-last-child(n)
匹配父元素中的倒數第n個結構子元素E
結構性偽類
E:nth-of-type(n)
匹配同類型中的第n個同級兄弟元素E
結構性偽類
E:nth-last-of-type(n)
匹配同類型中的倒數第n個同級兄弟元素E
結構性偽類
E:last-child
匹配父元素中最后一個E元素
結構性偽類
新聞熱點
疑難解答