J2SE Java基础 J2EE 设计模式 struts hibernate spring freemarker ibatis xml xslt Javascript mysql Linux 系统架构
Java高级 webwork webservice 网页制作 oracle sql server 数据库基础 软件工程 网站建设 SEO 黑客基础 名人堂 Ruby
首页 > 技术文档 > 网站制作 > xhtml css > 详解CSS3中的属性选择符

详解CSS3中的属性选择符

作者: dudo 来源: dudo  标签:css (English)

:empty伪类
:empty伪类指向没有任何子元素的元素。其中包括text节点,因此下面的示例只有第一行是空元素。

<p></p> 
<p>text</p> 
<p><em></em></p>

下面的规则只匹配第一行的p元素:

p:empty { background:#ff0 }

:empty伪类目前被基于Mozilla的浏览器支持。Safari会错误地把样式应用到所有指定的元素中去。

否定伪类
否定伪类写成:not(s),参数s为简单选择符。它指向的是除简单选择所指向的元素以外的所有元素。例如,下面的CSS将会指向所有不是p的元素:

:not(p) { border:1px solid #ccc; }

否定伪类目前只有基于Mozilla的浏览器支持。

::selection伪类
::selection伪类匹配指定元素中处于选中或者高亮状态的部分。其中一个应用就是用它来控制选中文本的样式。
下面的规则会使选中的文本颜色变为红色:

::select { color:#f00; }

::selection伪类目前可能基于Safari的浏览器支持。但是在使用上会出现不可预料的情况,因此Safari还需要一点改进。基于 Mozilla的浏览器要使用-moz-prefix: ::-mozi-selection来实现。这种prefix可能最终会被去掉。

通用兄弟元素选择器
通用兄弟元素选择器通过两个简单选择符通过波浪号(~)分隔组成。它匹配第二个简单选择符中所匹配的元素,而且与第一个简单选择符中匹配的元素要出现在他的前面。这两个元素必须具有同一个父元素,但是第二个元素不一定必须紧跟在第一个元素之后。这条CSS规则将会匹配所有p元素之后ul元素:

p ~ ul { background:#ff0; }

通用兄弟元素选择器目前有Opera和基于Mozilla的浏览器支持。

亟需更好的浏览器支持
部分CSS 3选择符已经被广泛支持。但是,大部分非常有用的选择符在现代浏览器中或者未被支持或者使用受到限制。这就使得本文中介绍的很多选择符在今天的Web或多或少失去了用武之地。但是不必害怕去尝试它,你仍然可以在支持他们的带来超前体验的高级浏览器中使用他们。

[附件]CSS3选择符在现在浏览器(Firefox 2、Firefox 3、InternetExplorer 7、Internet Explorer 8、Oper9.27)中的支持程度(dudo验证,请指正!)

_________________IE 7________IE8________FF2_________FF3______Opera9.27
E[foo^="bar"]______Y__________Y__________Y__________Y__________Y
E[foo$="bar"]    ______Y__________Y__________Y__________Y__________Y
E[foo*="bar"]    ______Y__________Y__________Y__________Y__________Y
E:root____________ N__________N__________Y__________Y__________Y
E:nth-child()_______ N__________N__________N__________N__________N
E:nth-last-child()____ N__________N__________N__________N__________N
E:nth-of-type()_____ N__________N__________N__________N__________N
E:nth-last-of-type()__ N__________N__________N__________N__________N
E:last-child_________ N__________N__________Y__________Y__________N
E:first-of-type______ N__________N__________N__________N__________N
E:only-child________ N__________N__________Y__________Y__________Y
E:only-of-type______N__________N__________N__________N__________N
E:empty__________ N__________N__________Y__________Y__________N
E:target___________N__________N__________Y__________Y__________N
E:enabled_________ N__________N__________Y__________Y__________Y
E:disabled_________ N__________N__________Y__________Y__________Y
E:checked_________N__________N__________N__________N__________Y
::selection_________N__________N__________N__________N__________N
not()_____________N__________N__________Y__________Y__________Y
E ~ F_____________Y__________Y__________Y__________Y__________Y


相关文章
(2007年05月25日)Firefox与IE在CSS样式中的差异
(2007年04月12日)Div+CSS布局入门教程
(2007年05月25日)完美兼容IE6/IE7/FF的通用方法
(2007年06月29日)玩转表单
(2007年05月25日)IE6/IE7和Firefox对Div处理的差异

评论列表

发表评论

赞助商