日期:2014-03-05 浏览次数:21073 次
英文原文:
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元素 |
结构性伪类 | E:first-of-type | 婚配同级兄弟元素中的第一个E元素 |
结构性伪类 | E:only-child | 婚配属于父元素中独一子元素的E |
结构性伪类 | E:only-of-type | 婚配属于同类型中独一兄弟元素的E |
结构性伪类 | E:empty | 婚配没有任何子元素(包括text节点)的元素E |
目标伪类 | E:target | 婚配相关URL指向的E元素 |
UI元素形状伪类 | E:enabled | 婚配所有用户界面(form表单)中处于可用形状的E元素 |
UI元素形状伪类 | E:disabled | 婚配所有用户界面(form表单)中处于不可用形状的E元素 |
UI元素形状伪类 | E:checked | 婚配所有用户界面(form表单)中处于选中形状的元素E |
UI元素形状伪类 | E::selection | 婚配E元素中被用户选中或处于高亮形状的部分 |