CSS也许是Web设计者和程序员之间一种最佳的沟通工具,所以,对于CSS的革新发展,每个人都会感到兴奋。W3C在其网站上公布了正在制定中的CSS4选择器(selector)规范,你会发现里面出现了很多新的东西。下面让我们来看看对于未来的浏览器,CSS4提供了哪些CSS选择器上的新功能和新特征!
$E > F
这个新出现的选择器语法能够让我们基于子元素(F)来给父元素($E)制定样式。下面是一个例子:
/* 将应用中LI元素上的样式 */
ul > $li > p { border: 1px solid #ccc; }
在上面的例子中,样式将应用中LI元素上,而不是P元素上!这是一个非常有用的新功能,希望最终能保留并实现出来!这种CSS选择器可能会带来一点点让人困惑的地方,比如下面的例子:
$ol > li:only-child {
list-style-type: none;
}
上面例子中的样式将会作用在只有一个LI子元素的OL元素上。不知道将来Web程序员对$语法使用能不能习惯;很有用的东西往往会被误用。
链接地址伪类 – :any-link 和 :local-link
这些伪类将会用在表示链接地址的元素上。其中:any-link伪类用于所有链接,而:local-link用于站内链接(相对于外部链接)。
如果你想标注一下页面上的所有外部链接,可以这样:
/* 内部链接 */
#sidebar a:local-link {
background: url(internal.png) 0 0 no-repeat;
}
另外一个背景表示所有外部链接:
/* 外部链接 */
:not(:local-link) {
background: url(external.png) 0 0 no-repeat;
}
这些伪类是非常有用的补充,有些网站上对外部链接和内部链接给出明确指示是非常常见的。
语言相关伪类 – :dir
这个:dir伪类用来区分文本是从左到右显示还是从右到左显示:
p:dir(ltr) { /* 从左到右(left to right) */
}
div:dir(rtl) { /* 从右到左(right to left) */
}
这也是一个非常有益的补充,特别是要支持多语言的网站,这是非常方便而且必要的支持。
元素引用组合选择器
这个新出现的元素引用组合选择器非常有趣,它能将两个元素通过选择器关联起来。两个正斜杠之间的是CSS保留字。下面是一个例子:
label:matches(:hover, :focus) /for/ input {
box-shadow: #fffea1 0 0 8px
}
上面的例子中,当LABEL元素称为焦点或有鼠标悬停时,相关的INPUT元素将会被高亮显示;而究竟是相关到哪个INPUT元素,这需要根据LABEL元素的for属性决定。你也许已经明白,LABEL元素的for属性里存放的应该是id。
这些新功能有价值吗?
我非常喜欢这个新的$语法,以及新的链接区分:-link功能,对于多语言网站,:dir的确有很大用处。而新出现的元素引用组合选择器非常有意思,关键是出现了新的反斜杠语法。你觉得这些CSS4中新的功能和特征有用吗?