详解CSS3中属性选择器新增加的特性

所属分类: 网页制作 / CSS 阅读数: 230
收藏 0 赞 0 分享

零、概览
CSS2支持的属性选择器用一个表达式[{属性 | 属性 {= | |= | ~=} 值}]
1.[class="a"]只能匹配class="a"的元素
2.[class~="a"]则可以匹配class="a"、class="a b"的元素
3.[lang|=en]则可以匹配lang="en"、lang="en-us"的元素。

CSS3新增*=、^=、$=三种匹配方式[{属性 | 属性 {*= | ^= | $=} 值}]:
1.*=表示模糊匹配,[href="163"]可以匹配href="163.com"、href="mail.163.com"等元素;
2.^=表示以指定字符开头,[href^="/"]则匹配href="/a/a.htm"、href="/b"的元素
3.$=表示以指定字符结尾,[scr$=".png"]则匹配所有png图片,如src="logo.png"

CSS3的属性选择器主要包括以下几种:
1.E[attr]:只使用属性名,但没有确定任何属性值;
2.E[attr="value"]:指定属性名,并指定了该属性的属性值;
3.E[attr~="value"]:指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“?”不能不写;
4.E[attr^="value"]:指定了属性名,并且有属性值,属性值是以value开头的;
5.E[attr$="value"]:指定了属性名,并且有属性值,而且属性值是以value结束的;
6.E[attr*="value"]:指定了属性名,并且有属性值,而且属值中包含了value;
7.E[attr|="value"]:指定了属性名,并且属性值是value或者以“value-”开头的值(比如说zh-cn);

一、E[attr]:属性选择器是CSS3属性选择器中最简单的一种。如果你希望选择有某个属性的元素,而不论这个属性值是什么,你就可以使用这个属性选择器:

CSS Code复制内容到剪贴板
  1. .demo a[id] {backgroundbluecolor:yellow;font-weight:bold;}  

也可以使用多属性进行选择元素,如E[attr1][attr2], 这样只要是同时具有这两属性的元素都将被选中:

CSS Code复制内容到剪贴板
  1. .demo a[href][title] {backgroundyellowcolor:green;}  

注:IE6不支持这个选择器。

二、E[attr="value"]:指定了属性值“value”

CSS Code复制内容到剪贴板
  1. .demo a[id="first"] {backgroundbluecolor:yellow;font-weight:bold;}  

注:属性和属性值必须完全匹配,特别是对于属性值是词列表的形式时,如:
    test

CSS Code复制内容到剪贴板
  1. .demo a[class="links"]{color:red};   
  2. .demo a[class="links item"]{color:red};  

    IE6不支持这个选择器。

三、E[attr~="value"]:如果想根据属性值中的词列表的某个词来进行选择元素,那么就需要使用这种属性选择器:E[attr~="value"],这种属性选择器是属性值是一个或多个词列表,如果是列表时,他们需要用空格隔开,只要属性值中有一个value相匹配就可以选中该元素,前面所讲的E[attr="value"]是属性值需要完全匹配才会被选中,他们两者区别就是一个有“?”号,一个没有“?”号。

CSS Code复制内容到剪贴板
  1. .demo a[title~="website"]{background:orange;color:green;}  

注:属性选择器中有波浪(?)时属性值有value时就相匹配,没有波浪(?)时属性值要完全是value时才匹配。IE6不支持E[attr~="value"]属性选择器。

四、E[attr^="value"]:选择attr属性值以“value”开头的所有元素,换句话说,选择的属性其以对应的属性值是以“value”开始的。

CSS Code复制内容到剪贴板
  1. .demo a[href^="http://"]{background:orange;color:green;}  

注:IE6不支持E[attr^="value"]选择器。

五、E[attr$="value"]:E[attr$="value"]属性选择器刚好与E[attr^="value"]选择器相反,E[attr$="value"]表示的是选择attr属性值以"value"结尾的所有元素,换句话说就是选择元素attr属性,并且他的属性值是以value结尾的,这个运用在给你一些特殊的链接加背景图片很方便的,比如说给pdf,png,doc等不同文件加上不同icon,我们就可以使用这个属性来实现.

CSS Code复制内容到剪贴板
  1. .demo a[href$="png"]{background:orange;color:green;}  

注:IE6不支持E[attr$="value"]属性选择器。

六、E[attr*="value"]:选择attr属性值中包含子串"value"的所有元素。也就是说,只要你所选择的属性,其属性值中有这个"value"值都将被选中。

CSS Code复制内容到剪贴板
  1. .demo a[title*="site"]{background:black;color:white;}  

注:IE6不支持E[attr*="value"]选择器。

七、E[attr|="value"]:称作为特定属性选择器。这个选择器会选择attr属性值等于value或以value-开头的所有元素。

CSS Code复制内容到剪贴板
  1. .demo a[lang|="zh"]{background:gray;color:yellow;}  

注:常常用的地方是用来匹配语言,IE6不支持E[attr|="value"]选择器。

注释:
1.属性选择器除了IE6不支持外,其他的浏览器都能支持。
2.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图标。

更多精彩内容其他人还在看

CSS入门教程:计算CSS盒模型宽和高

 出处:当我们布局一个网页的时候,经常会遇到这样的一种情况,那就是最终网页成型的宽度或是高度会超出我们预先的计算,其实就就是所谓的CSS的盒模型造成的。 #test{margin:10px;padding:10px;width:100px;height:100px;}
收藏 0 赞 0 分享

在IE流览器中正确显示PNG透明图片

  png图片有很好的品质。阴影效果也不会有杂边,很流畅。如果插入网页的话可以给网站内容增色不少!更重要的是在不增加图片容量大小的情况下提高了页面的图片的质量。对于有复杂背景,如:在有颜色过度背景上插入不规则边框的图片带来极大很便利!   但目前IE中对于插入
收藏 0 赞 0 分享

CSS教程:DIV底部放置文字

  css对文字的布局上没有靠容器底部对齐的参数,目前使用的一个不错的方法也比较好.就是用position属性来解决,看下面的代码,用position的相对和绝对定位功能也轻松的实现了,文字靠近div低部对齐,并且靠近的距离还可以精确到像素,自己可以调节,是不是很不错呢?
收藏 0 赞 0 分享

如何用CSS让文字居于div的底部

  这个问题是别人提出的,因为css对文字的布局上没有靠容器底部对齐的参数,(或许有但是我没有发现)不过目前我使用的一个不错的方法也比较好.就是用position属性来解决,看下面的代码,我用position的相对和绝对定位功能也轻松的实现了,文字靠近div低部对齐,并且靠近
收藏 0 赞 0 分享

从A页面连接到B页面后并直接把B页面的隐藏层显示

  这个效果实现的是,在B页面里有两个层,一个显示层,我们暂定名c层,一个是隐藏层,我们暂定名d层,单独进B页面的时候,c层显示,d层隐藏,然而从A页面连接到B页面的时候,则是让d层显示,c层隐藏,我觉得这个效果对网页设计者以后会有很大帮助,现在把代码发出来,
收藏 0 赞 0 分享

CSS样式表定义标签li前面样式

定义LI前面的小点样式 view plaincopy to clipboardprint? 语法: list-style-type : disc | circle | square | decimal | lower-roman | upper-roman | lowe
收藏 0 赞 0 分享

符合标准的div css制作的弹出菜单

本文介绍了五款符合标准的div css制作的弹出菜单,而且不含有js的. NO.1最基本的:二级dropdown弹出菜单 <!DOCTYPE html PUB
收藏 0 赞 0 分享

CSS实现在文章每段后面加入带连接的隐藏文字

代码主要理解3个参数:createElement、createTextNode、appendChild。这3个js参数分别是创建元素、创建字符、追加节点。代码原理:循环页面段落标签<p>,创建连接元素<a>,创建要显示的连接字符,用SetAttribute
收藏 0 赞 0 分享

CSS:浏览器特定选择器介绍

当你想在一个浏览器里改变样式而不像在其他浏览器中改变时,这些选择器很有用。 IE6以下 *html{} IE 7 以下 *:first-child html {} * html {} 只对IE 7 *:first-child html {} 只对IE 7
收藏 0 赞 0 分享

WEB标准学习,认识两种网页声明的含义

即网页标准推出来以后,我们时常会看到两种不同的网页的声明,一个是Dhtml,一个是Xhtml。如下所示: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht
收藏 0 赞 0 分享
查看更多