转自:http://www.w3cplus.com/css3/attribute-selectors
上一切在《CSS3选择器——基本选择器》中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器。属性选择器早在CSS2中就被引入了,其主要作用就是对带有指定属性的HTML 元素设置样式。使用CSS3属性选择器,你可以只指定元素的某个属性,或者你还可以同时指定元素的某个属性和其对应的属性值。
从上一节展示的CSS3选择器的图表中,我们可以知道,CSS3的属性选择器主要包括以下几种:
- E[attr]:只使用属性名,但没有确定任何属性值;
- E[attr="value"]:指定属性名,并指定了该属性的属性值;
- E[attr~="value"]:指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写;
- E[attr^="value"]:指定了属性名,并且有属性值,属性值是以value开头的;
- E[attr$="value"]:指定了属性名,并且有属性值,而且属性值是以value结束的;
- E[attr*="value"]:指定了属性名,并且有属性值,而且属值中包含了value;
- E[attr|="value"]:指定了属性名,并且属性值是value或者以“value-”开头的值(比如说zh-cn);
为了更好的说明CSS3属性选择器的使用方法,我们把第一节的demo换成别的结构,如下所示:
<div class="demo clearfix"> <a href="http://www.w3cplus.com" target="_blank" class="links item first" id="first" title="w3cplus">1</a> <a href="" class="links active item" title="test website" target="_blank" lang="zh">2</a> <a href="sites/file/test.html" class="links item" title="this is a link" lang="zh-cn">3</a> <a href="sites/file/test.png" class="links item" target="_balnk" lang="zh-tw">4</a> <a href="sites/file/image.jpg" class="links item" title="zh-cn">5</a> <a href="mailto:w3cplus@hotmail" class="links item" title="website link" lang="zh">6</a> <a href="" class="links item" title="open the website" lang="cn">7</a> <a href="" class="links item" title="close the website" lang="en-zh">8</a> <a href="" class="links item" title="http://www.sina.com">9</a> <a href="" class="links item last" id="last">10</a> </div>
初步美化一下上面的代码
.demo { width: 300px; border: 1px solid #ccc; padding: 10px; } .demo a { float: left; display: block; height: 20px; line-height: 20px; width: 20px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; text-align: center; background: #f36; color: green; margin-right: 5px; text-decoration: none; }
最初效果如下所示:
下面就开始针对上面列出的每个属性选择器来,具体分析其使用方法。
一、E[attr]
E[attr]属性选择器是CSS3属性选择器中最简单的一种。如果你希望选择有某个属性的元素,而不论这个属性值是什么,你就可以使用这个属性选择器,如:
.demo a[id] {background: blue; color:yellow;font-weight:bold;}
上面代码所表示的,选择了div.demo下所有带有id属性的a元素,并在这个元素上使用背景色为兰色,前景色为黄色,字体加粗的样式,对照上面的html,我们不难发现,只有第一个和最后一个链接使用了id属性,所以选中了这两个a元素,效果如下所示:
上面是单一属性的使用,你也可以使用多属性进行选择元素,如E[attr1][attr2], 这样只要是同时具有这两属性的元素都将被选中:
.demo a[href][title] {background: yellow; color:green;}
不用我说,上面的代码大家都知道是什么意思了,他表示的是选择div.demo下的同时具有href,title两个属性的a元素,并且应用相对应的样式,如下所示:
IE6不支持这个选择器。
二、E[attr="value"]
E[attr="value"]选择器和E[attr]选择器,从字面上就能很清楚的理解出来,E[attr="value"]是指定了属性值“value”,而E[attr]只是选择了有对应的属性,并没有明确指其对应的属性值"value",这也是这两种选择器的最大区是之处。从而缩小了选择 围,更能精确选择自己需要的元素,在前面实例基础上我们进行一下简单的修改:
.demo a[id="first"] {background: blue; color:yellow;font-weight:bold;}
和前面代码相比较,此处在id的属性基础上指定了相应的value值为“first”,这样一来我们选中的是div.demo中的a元素,并且这个元素有一个"id="first""属性值,请看下在的效果图:
E[attr="value"]属性选择器也可以多个属性并写,进一步缩小选择范围:
.demo a[href="http://www.w3cplus.com"][title] {background: yellow; color:green;}
效果如下:
对于E[attr="value"]这种属性值选择器有一点需要注意:属性和属性值必须完全匹配,特别是对于属性值是词列表的形式时,如:
<a href="" class="links item" title="open the website">7</a>
例如上面的代码,如果你写成:
.demo a[class="links"]{color:red};/*这是一种写法不能和上面的html所匹配*/
上面的属性选择器并不会和上在的html匹配,因为他们的属性和属性值没有完全匹配,需要改成如下所示的代码,才能正确匹配:
.demo a[class="links item"]{color:red};/*这样才是匹配的,记得中间的空格不能少的哟*/
IE6浏览器不支持这种选择器。
三、E[attr~="value"]
如果你想根据属性值中的词列表的某个词来进行选择元素,那么就需要使用这种属性选择器:E[attr~="value"],这种属性选择器是属性值是一个或多个词列表,如果是列表时,他们需要用空格隔开,只要属性值中有一个value相匹配就可以选中该元素,而我们前面所讲的E[attr="value"]是属性值需要完全匹配才会被选中,他们两者区别就是一个有“〜”号,一个没有“〜”号。我们来看一个这方面的实例:
.demo a[title~="website"]{background:orange;color:green;}
上面代码表示的是,div.demo下的a元素的title属性中,只要其属性值中含有"website"这个词就会被选择,回头看看我们的html,不难发现所有a元素中“2,6,7,8”这四个a元素的title中都含有,所以被选中,请看效果:
如果我们在上面的代码中,把那个“〜”号省去,大家看看他们不同之处:
.demo a[title="website"]{background:orange;color:green;}
这样将不会选择中任何元素,因为在所有a元素中无法找到完全匹配的"title='website'",换句话说就没有选中任何元素,效果如下:
这个实例再次证明了E[attr="value"]和E[attr~="value"]之间的区别,和其中“〜”所取的作用,我总结了一句话:属性选择器中有波浪(〜)时属性值有value时就相匹配,没有波浪(〜)时属性值要完全是value时才匹配。
IE6不支持E[attr~="value"]属性选择器。
四、E[attr^="value"]
E[attr^="value"]属性选择器,指的是选择attr属性值以“value”开头的所有元素,换句话说,选择的属性其以对应的属性值是以“value”开始的,一起来看个实例:
.demo a[href^="http://"]{background:orange;color:green;} .demo a[href^="mailto:"]{background:green;color:orange;}
上面代码表示的是选择了以href属性,并且以"http://"和"mailto:"开头的属性值的所有a元素,换过更简单一点的呢?只要a元素中的href属性值是以"http://"或"mailto:"开头的a元素都会以选中,那么下面大家请对照上面的html和下面的效果图,看看是不是那么一回事:
IE6不支持E[attr^="value"]选择器。
五、E[attr$="value"]
E[attr$="value"]属性选择器刚好与E[attr^="value"]选择器相反,E[attr$="value"]表示的是选择attr属性值以"value"结尾的所有元素,换句话说就是选择元素attr属性,并且他的属性值是以value结尾的,这个运用在给你一些特殊的链接加背景图片很方便的,比如说给pdf,png,doc等不同文件加上不同icon,我们就可以使用这个属性来实现,如:
.demo a[href$="png"]{background:orange;color:green;}
上面代码表示的是,选择div.demo中元素有href属性,并以png值结尾的a元素。(正如上面所说,只不过这里使用的是改变元素的背景色),效果如下:
IE6不支持E[attr$="value"]属性选择器。
六、E[attr*="value"]
E[attr*="value"]属性选择器表示的是选择attr属性值中包含子串"value"的所有元素。也就是说,只要你所选择的属性,其属性值中有这个"value"值都将被选中,如:
.demo a[title*="site"]{background:black;color:white;}
上面代码表示的是:选择了div.demo中a元素,而a元素的title属性中只要有"site"就符合选择条件。效果如下:
IE6不支持E[attr*="value"]选择器。
七、E[attr|="value"]
E[attr|="value"]是属性选择器中的最后一种,在说这个选择器使用之前先提醒大家attr后面的是一个竖线“|”而不是l,小心搞错了。E[attr|="value"]被称作为特定属性选择器。这个选择器会选择attr属性值等于value或以value-开头的所有元素,我们来看个实例:
.demo a[lang|="zh"]{background:gray;color:yellow;}
上面的代码会选中了div.demo中lang属性等于zh或以zh-开头的所有a元素,大家可以对照前面的html代友,其中"2,3,4,6"被选中,因为他们都有一个lang属性,并且他们的属性值都符合以"zh"或"zh-"开始的元素。具体效果如下:
所以这种属性选择器用来匹配以“女value-1”,"value-2"的属性是很方便的,比如说你页面中有很多图片,图片文件名都是以"figure-1","figure-2"这样的方式来命名的,那么使用这种选择器选中图片就很方便了,大家可以在本地尝试一下,这种属性选择器最常常用的地方是如上面的示例用来匹配语言。
IE6不支持E[attr|="value"]选择器。
有关于属性选择器就上面这些内容了,属性选择器除了IE6不支持外,其他的浏览器都能支持,这样一来,如果你在你的页面上使用了属性选择器,而且你需要处理ie6兼容问题,那你就需要确保IE6用别的方法来实现或者你应该确保IE6用户将能获得一个可用的页面。七种属性选择器中E[attr="value"]和E[attr*="value"]是最实用的,其中E[attr="value"]能帮我们定位不同类型的元素,特别是表单form元素的操作,比如说input[type="text"],input[type="checkbox"]等,而E[attr*="value"]能在网站中帮助我们匹配不同类型的文件,比如说你的网站上不同的文件类型的链接需要使用不同的icon图标,用来帮助你的网站提高用户体验,就像前面的实例,可以通过这个属性给".doc",".pdf",".png",".ppt"配置不同的icon图标。
到这里,CSS3的属性选择器就介绍完了,下一节将主要介绍CSS3的伪类选择器,特别是其中的nth-child选择器,将是CSS3选择器中最有吸引力的一部分,大家如果感兴趣的话,请观注本站的有关更新吧。让我们一起期待CSS3的无穷力量。
如需转载烦请注明出处:W3CPLUS
相关推荐
Web 开发——CSS 属性选择器 CSS 属性选择器是 CSS 中一种强大的选择器,允许开发者根据 HTML 元素的属性和值来设置样式。下面是 CSS 属性选择器的详细知识点: 什么是 CSS 属性选择器? CSS 属性选择器是一种...
《CSS高效开发实战——CSS 3、LESS、SASS、Bootstrap、Foundation》分为3部分:第1部分是HTML/CSS基础和CSS 3新特性演示,涵盖盒子模型、浮动布局、属性前缀、选择器、字体、边框、背景、颜色、变换、动画、弹性盒子...
"Web开发——CSS派生选择器" 在Web开发中,CSS派生选择器是一种强大的选择器,它可以根据元素在其位置的上下文关系来定义样式。这种选择器可以使标记更加简洁,提高代码的可读性和维护性。 首先,让我们来了解什么...
初学者可以通过查看和修改这些规则来了解CSS的工作原理,如选择器、属性和值的使用。例如,他们可能会看到如何定义背景颜色、边距、边框、字体样式等。 2. **index.html**:这是主网页文件,可能包含了多个用作布局...
CSS 类选择器 CSS 类选择器是 CSS 中的一种选择器,用于选择拥有特定类名的 HTML 元素。类选择器以一个点号(.)开头,后面跟着类名。 例如,`.center {text-align: center}`,这意味着所有拥有 center 类的 HTML ...
本篇文章将深入探讨 CSS3 选择器中的重要成员——`:nth` 选择器系列,并通过实例演示这些选择器的用法与应用场景。 #### 二、`:nth` 选择器概述 `:nth` 选择器是 CSS3 引入的一组强大而灵活的选择器,它们允许...
4. CSS3选择器:使用更高级的选择器,如类选择器、ID选择器、伪类选择器,来更精确地控制样式。 5. 样式动画:利用CSS3的transition和animation属性,为城市图片、标题或其他元素添加动态效果,增加互动性和吸引力...
为了更好地理解和分析CSS选择器的特殊性,我们可以借助工具——"Specificity Visualizer"。这个工具(在`specificity-visualizer-master`文件中)允许开发者输入或导入CSS代码,然后以可视化的方式展示每个选择器的...
它通常包含了完整的CSS2语法、属性、选择器和示例,方便开发者快速查找和理解相关特性。通过手册,开发者可以: 1. 学习CSS2的基础语法,了解各种选择器的用法。 2. 查看所有可用的CSS2属性及其可能值,理解其作用...
CSS3则是样式表语言的最新版本,它带来了丰富的动画、过渡和选择器,为网页设计增添了无限可能。在Deliccio模板中,CSS3的使用体现在色彩渐变、阴影效果、边框圆角以及灵活的布局模式上,这些都使得网站界面看起来...
CSS的基本语法包括选择器(Selector)、属性(Property)和值(Value)。选择器指明要应用样式的元素,属性定义了元素的视觉特性,如颜色、大小、布局等,而值则具体规定这些特性的参数。批量更改网页外观是CSS的一...
例如,选择器的扩展允许更精确地控制样式,如`:nth-child()`, `:not()`, 和 `:checked`。CSS3还引入了边框图像、多背景、渐变、阴影等效果,以及2D和3D转换,使网页设计更具动态感。Flexbox和Grid布局系统简化了复杂...
例如,在Vue中,我们可以使用`v-for`指令来渲染列表,`v-model`来绑定选择器的值,以及计算属性(computed properties)来根据当前选择动态生成下一级别的数据。 6. **移动端适配**:在移动设备上,可能需要考虑...
前面花了两节内容分别在《CSS3选择器——基本选择器》和《CSS3选择器——属性选择器》介绍了CSS3选择器中的基本选择器和属性选择器使用方法,今天要和大家一起学习CSS3选择器中的第三部分,也是最后一部分——伪类...
本文将深入探讨两种常用的选择器——CSS选择器和jQuery选择器,并通过具体的例子来帮助读者更好地理解和掌握它们。 #### 二、CSS选择器 CSS选择器是CSS的核心功能之一,用于定义哪些HTML元素应该应用特定的样式。...
1. **CSS3选择器**:CSS3引入了许多新的选择器,如类选择器、ID选择器、伪类选择器(如`:hover`, `:active`, `:focus`)等,这些都用于更精确地定位和应用样式到页面元素上。 2. **CSS3动画**:通过`@keyframes`...
2. **选择器**:CSS选择器是定位HTML或XML文档中元素的关键。基本选择器包括类型选择器(如`p`),ID选择器(如`#myID`),类选择器(如`.myClass`)以及属性选择器(如`[target="_blank"]`)。 3. **盒模型**:CSS...
2. **选择器**:使用类选择器(.class)、ID选择器(#id)、元素选择器(element)等来定位和设置不同元素的样式。 3. **布局技术**:可能运用了Flexbox或Grid布局,这两种现代布局方式能更灵活地控制元素排列和对齐。 ...
CSS的核心是选择器和声明。选择器用于定位HTML元素,而声明定义了这些元素的样式属性。例如: ```css p { color: red; font-size: 16px; } ``` 在这段代码中,`p`是选择器,`color: red;`和`font-size: 16px...
1. **选择器**:CSS3引入了更复杂的选择器,如伪类选择器(`:hover`、`:active`、`:focus`)和属性选择器(`[attr=value]`),使我们可以更精确地控制元素的样式。在时间轴的设计中,可能需要用到这些选择器来分别...