CSS 3选新增择器[1]:更多的属性选择器

前言:Google的Chrome对于学习最新的CSS选择器的人来说是一个好消息,因为它支持CSS3的新选择器,所以本猫也把书里面没有展开介绍的部分,重新充实了一下。当然,书已经下印厂无法修改了,但是来这里看的人们可以先睹为快了。目前支持这3种匹配方式的属性选择器的浏览器有:IE 7.0、Firefox 2.0、Opera 9.2、Safari等。现在还有Google的Chrome。

CSS 3在CSS 2支持的选择器的基础上,又增加了多种功能强大而且非常实用的选择器,在本节内将对这些选则器作简单介绍。

提示:读者可以访问W3C的官方网站http://www.w3.org/(英文)了解更多关于CSS3的信息。

4.7.1 更多的属性选择器

虽然到本书完稿之日,CSS 3还未正式公布,但是其部分内容已经被一些浏览器采纳并支持,例如子字符串匹配的属性选择器等。

CSS 3对属性选择器的又增加了3种子字符串的匹配方式:
1) E[att ^= “val”]
匹配所有E元素中att属性的值以“val”开始的所有元素。
2) E[att $= “val”]
匹配所有E元素中att属性的值以“val”结束的所有元素。
3) E[att *= ”val”]

匹配所有E元素中att属性的值中包含字符串“val”的所有元素。

例如有XHTML结构如下:

<div class="nav-primary">class=&quot; nav-primary&quot;</div>
<div class="content-primary">class=&quot;content-primary&quot;</div>
<div class="content-secondary">class=&quot;content-secondary&quot;</div>
<div class="tertiary-content">class=&quot;tertiary-content&quot;</div>
<div class="nav-secondary">class=&quot;nav-secondary&quot;</div>

如果定义如下CSS规则,其显示如图4-36所示。

div[class^="nav"] { background:#ff0; }
选择器的应用”]

注意,此处的匹配与“-”无关,只是简单的字符串匹配。

如果定义如下CSS规则,其显示如图4-37所示。

div[class$="primary"] { background: #CF9; }

选择器的应用”]如果定义如下CSS规则,其显示如图4-38所示。

div[class*="content"] { background: #0CF; }
选择器的应用”]

4.7.2 普通兄弟选择器

CSS 2内有相邻选择器,只匹配相邻的兄弟元素,而普通兄弟选择器则可以匹配不相邻的兄弟元素,其语法如下:
E ~ F { …… }
匹配所有F元素,如果他是E的兄弟元素,且在E之后出现。
例如有如下代码,其在浏览器内显示如图4-39所示。

.test ~ p { background: #FC0; }
<div>
  <div>div 1</div>
  <p>p 1</p>
  <div class="test">div 2, class=&quot;test&quot;</div>
  <p>p 2</p>
  <div>div 3
    <p>div 3 内的p</p>
  </div>
  <p>p 3</p>
</div>

图4-39 普通兄弟选择器的应用

发表评论

电子邮件地址不会被公开。 必填项已用*标注