[W3C][CSS]选择器(Selectors Level 3)[未完成]

 

介绍

一个选择器表示一个结构。该结构可以作为判断文档树中的哪些元素匹配该选择器的条件,或者对结构所对应的HTML或XML片段的描述。

下表简述了选择器的语法:

模式意义描述CSS
Level
MACWINDOWS
ChromeFirefoxOperaSafariChromeFirefoxOperaSafariIE
53.610443.631010.54678
* 任意元素。 通配选择符 2
E 任意类型为E的元素。 类型选择器 1
E[foo] 一个E元素,其拥有“foo”属性的。 属性选择器 2
E[foo="bar"] 一个E元素,其“foo”属性的值完全等于“bar”。 属性选择器 2
E[foo~="bar"] 一个E元素,其“foo”属性的值是一个以空白字符分割的列表,其中一个元素完全等于“bar”。 属性选择器 2
E[foo^="bar"] 一个E元素,其“foo”属性的值以字符串“bar”开始。 属性选择器 3
E[foo$="bar"] 一个E元素,其“foo”属性的值以字符串“bar”结束。 属性选择器 3
E[foo*="bar"] 一个E元素,其“foo”属性的值包含子字符串“bar” 属性选择器 3
E[foo|="en"] 一个E元素,其“foo”属性是一个以连字符分割的列表,其中第一个(从左侧开始)元素完全等于“en”。 属性选择器 2
E:root 一个E元素,且为文档的根。 结构伪类 3
× × ×
E:nth-child(n) 一个E元素,且为其父亲的第n个孩子。 结构伪类 3
× × × ×
E:nth-last-child(n) 一个E元素,且从其父亲的最后一个孩子开始计数,为其父亲的第n个孩子。 结构伪类 3
× × × ×
E:nth-of-type(n) 一个E元素,且为该类型的第n个兄弟。 结构伪类 3
× × × ×
E:nth-last-of-type(n) 一个E元素,且从该类型的最后一个兄弟开始计数,为该类型的第n个兄弟。 结构伪类 3
× × × ×
E:first-child 一个E元素,且为其父亲的第一个孩子。 结构伪类 2
E:last-child 一个E元素,且为其父亲的最后一个孩子。 结构伪类 3
× × ×
E:first-of-type 一个E元素,且为该类型的第一个兄弟。 结构伪类 3
× × × ×
E:last-of-type 一个E元素,且为该类型的最后一个兄弟。 结构伪类 3
× × × ×
E:only-child 一个E元素,且为其父亲的唯一一个孩子。 结构伪类 3
× × ×
E:only-of-type 一个E元素,且为该类型的唯一一个兄弟。 结构伪类 3
× × × ×
E:empty 一个E元素,且其不包含孩子(包含Text节点) 结构伪类 3
× × ×
E:link
E:visited
一个E元素,且其为一个尚未被访问(:link)或已经被访问(:visited)的超链接的源锚点。 链接伪类 1
E:active
E:hover
E:focus
一个E元素,且其处于某一用户操作期间。 用户操作伪类 1&2
E:target 一个E元素,且其为引用URI的目标。 目标伪类 3
× × ×
E:lang(fr) 一个类型为E,语言为“fr”的元素(文档语言决定如何判断其语言)。 语言伪类 2
E:enabled
E:disabled
一个用户界面元素E,其可用或者被禁用。 UI元素状态伪类 3
× × ×
E:checked 一个用户界面元素E,其被选中(例如单选按钮或复选框)。 UI元素状态伪类 3
× × × × ×
E::first-line E元素的第一个有格式的行。 首行伪元素 1
E::first-letter E元素的第一个有格式的字母。 首字母伪元素 1
E::before 在E元素之前产生的内容。 前置伪元素 2
E::after 在E元素之后产生的内容。 后置伪元素 2
E.warning 一个E元素,其类为“warning”(文档语言决定如何判断类)。 类选择器 1
E#myid 一个E元素,其ID等于“myid”。 ID选择器 1
E:not(s) 一个E元素,其不匹配简单的选择器s。 否定伪类 3
× × ×
E F 一个F元素,且其为E元素的后裔。 后裔组合 1
E > F 一个F元素,且其为E元素的孩子。 孩子组合 2
E + F 一个F元素,且其紧紧跟随E元素。 相邻兄弟组合 2
E ~ F 一个F元素,且其跟随E元素。 一般兄弟组合 3
×

通配选择符

通配选择符被写作一个本地名称为星号(* U+002A)的CSS限定名。如果没有对该选择器定义默认命名空间,其表示在文档中任意命名空间下(包括不属于命名空间)的任意单独的元素。

如果“*”所表示的通配选择符(例如没有命名空间前缀)不是简单选择序列选择器的唯一组成部分或者其后紧跟一个伪元素,则“*”可以省略。

  • *[hreflang|=en]等价于[hreflang|=en]
  • *.warning等价于.warning
  • *#myid等价于#myid

我们建议保留“*”,因为这样能够减少潜在的歧义可能。例如:div :first-childdiv:first-child,前者应写为div *:first-child

通配选择符允许一个可选的命名空间组件。

ns|*
命名空间ns下的所有元素。
*|*
所有元素。
|*
所有没有命名空间的元素。
*
如果没有标记的默认命名空间,其等价于*|*。否则,其等价于ns|*,其中ns为默认命名空间。

引用

CSS限定名
……
posted @ 2012-01-10 16:41  NiuWeb  阅读(309)  评论(0)    收藏  举报