欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!

属性选择器在css2中引入,使我们可以根据元素的属性及属性值来选择元素。下面分别来说明:

(1)简单属性选择器

简单的属性选择器可以使我们根据一个元素是否包含某个属性来做出选择。使用方法为: 元素名[属性名] 或 *[属性名]。比如我们希望选择带有alt属性的所有img元素: img[alt] { ...}

选择带有title属性的所有元素:*[title] { ...}。同类选择器类似,我们也可以根据多个属性信息进行选择,例如同时拥有href和title的a元素:

a[href][title] { ...}

组合使用类选择器使我们的选择更加富于灵活性。

(2)具体属性值选择器

如果我们希望更加精确地根据属性值来选择元素,我们可以在简单的属性选择器中指定属性的值。最简单的我们希望找到href属性值为http://www.baidu.com的锚元素:

a[href="http://www.baidu.com"] { font-weight: bold;}

要特别注意的是,这里的具体值匹配实质上是一个字符串匹配,所以在这里对于class属性而言,词条的顺序是有关系的。

p[class="warning important"] { ...}

将不会匹配到<p class="important warning"></p>,也不会匹配到<p class="warning important mini-type">,这里就是一个生硬的字符串匹配。

另外,想要同时匹配多个属性的值也是可以的:

p[class="warning"][title="para"] { ...}

将匹配到类为warning(仅有warning),title属性为para的p元素。

(3)部分属性值选择器

根据属性值来匹配元素无疑比简单的属性匹配更加精细化了,但是似乎有些精细化过头了,字符串的完全匹配显得过于生硬。比如我们希望选择在一串属性值中出现了某个关键字的元素,不妨再次以class属性为例,我们希望选择所有包含了warning类的p元素,属性值匹配将无法做到,好在还是有办法的,我们可以使用以下的部分值匹配选择器:

p[class~="warning"] { ...}

该选择器在等号”=”前面添加了一个波浪号~,含义为包含后面的字串的匹配。以上代码将会选择所有class属性中包含”warning”的p元素。为了更加清楚地说明问题,它和以下的选择器是等价的:

p.warning { ...}

当然~=不仅仅只是用在class属性上,这只是一个示例。

再比如说,我们的文档中包含一系列人物介绍的div元素:

<div title="intro 1">...</div>

<div title="intro 2">...</div>

<div title="intro 3">...</div>

我们可以使用以下的方式选择所有人物简介div:div[title~="intro"] { ...}

不过遗憾的是<div title="animal intro">也将会被选择进来,这是需要我们特别注意的地方。

关于部分值选择器也有其局限性,它匹配的是由空格分隔的单词,如果我们将上面的div写成下面的样子就会匹配失败:

<div title="intro-1">...</div>

<div title="intro-2">...</div>

<div title="intro-3">...</div>

对于这种情况,我们可以使用子串匹配属性选择器。规则如下:

l div[title^="intro"] {...} //title以intro开头的div元素

l div[title$="intro"] {...} //title以intro结尾的div元素

l div[title*="intro"] {...} //title中包含"intro"子串的div元素

举例来说:

a[href*="google."] {...}

将包含所有链接中包含”google.”的a元素。

div[title$="y"] {...}

将包含以下所有div元素:

<div title="cloudy">...</div>

<div title="snowy">...</div>

<div title="rainy">...</div>

可以看出部分值属性选择器的功能是十分强大的。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h59361.shtml