css2.1中的属性选择器(css高手请绕道)

早上看了司徒先生的js版属性选择器(http://www.cnblogs.com/rubylouvre/archive/2009/10/27/1590102.html),也激发了我深入了解css选择器的学习欲望, 整理于此以便日后备查

*:匹配任何元素。

例如: *{margin:0}

E:匹配任何E元素。

例如: div{color:red}

E F:匹配E的所有后代F元素。

E > F:匹配E的所有子F元素。这个选择器与上一个选择器的区别是:E F会匹配E标签里面嵌套的所有F标签,而E > F只会匹配E标签里面嵌套的第一层F标签。

说明:(Ie6以上版本支持)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
*{color:black;}
.cls1 > div {color:red}
.cls2 div{color:green}
</style>
</head>
<body>
<div class="cls1">
<div class="sub">sub div1
<div>aaa</div>
</div>
<div class="sub">sub div2
<div>bbb</div>
</div>
</div>
<hr />
<div class="cls2">
<div class="sub">sub div1
<div>aaa</div>
</div>
<div class="sub">sub div2
<div>bbb</div>
</div>
</div>
</body>
</html>

运行代码

E:first-child:匹配第一个E元素。

说明:IE6以上版本支持

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>E:first-child</title>
<style type="text/css">
.cls1 div:first-child{color:red}
</style>
</head>
<body>
<div class="cls1">
<div >我是红色的</div>
<div >我是黑色的</div>
</div>
</body>
</html>

运行代码

E:link,E:visited:分别匹配还没访问过的超链接和已经访问过的超链接。

E:active,E:hover,E:focus:匹配各种用户动作下的E元素。

说明:IE6以上的版本,允许任何元素都可使用:hover等伪类

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
.cls1:first-child{color:red}
.cls1:focus{border:solid 1px #f00} /*-ie8才开始支持-*/
.cls1:hover{background:#ff9} /*-ie7才开始支持-*/
</style>
</head>
<body>
<input type="text" class="cls1"></input>
<input type="text" class="cls1"></input>
<input type="text" class="cls1"></input>
</body>
</html>

运行代码

E + F:匹配与E邻接的下一个F元素。

说明:(可恶的IE不支持-不管是IE的哪个版本都一样) 该选择器还有一个非标准的写法 E ~ F 效果跟E + F一样(但是~的这种写法,IE7,IE8能识别)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
.cls1 + .cls2{border:solid 1px #f00}
</style>
</head>
<body>
<input type="text" class="cls1"></input>
<input type="text" class="cls2"></input>
<input type="text" class="cls1"></input>
<input type="text" class="cls2"></input>
</body>
</html>

运行代码

E[foo]:匹配设置了foo属性(不管是什么值)的E元素。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
.cls1[email]{border:solid 1px #f00} /*-ie7才开始支持-*/
</style>
</head>
<body>
<input type="text" class="cls1" email="yjmyzz@126.com"></input>
<input type="text" class="cls1"></input>
</body>
</html>

运行代码

E[foo="warning"]:匹配任何foo属性为"warning"的E元素。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
input[class='cls1']{border:solid 1px #f00} /*--ie7才开始支持(该属性区分大小写)--*/
</style>
</head>
<body>
<input type="text" class="cls1" value='cls1'></input>
<input type="text" class="Cls1" value='Cls1'></input>
<input type="text" class="cls2" value='cls2'></input>
</body>
</html>

运行代码

E[foo~="warning"]:匹配任何foo属性以空白作为分隔,其中一个值是"warning"的E元素。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
input[class~='cls2']{border:solid 1px #f00} /*--ie7才开始支持(该属性区分大小写)--*/
</style>
</head>
<body>
<input type="text" class="cls1 cls2" value='cls1 cls2'></input>
<input type="text" class="Cls1" value='Cls1'></input>
<input type="text" class="cls2" value='cls2'></input>
</body>
</html>

运行代码

E[lang!="en"]:匹配任何lang属性值以"-"作为分隔符,而且第一个精确等于"en"的E元素(也匹配lang属性只有属性值en的元素)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
input[class|='cls1']{border:solid 1px #f00} /*--ie7才开始支持(该属性区分大小写)--*/
</style>
</head>
<body>
<input type="text" class="cls1-cls2-cls3" value='cls1-cls2-cls3'></input>
<input type="text" class="cls2-cls1" value='cls2-cls1'></input>
<input type="text" class="cls1" value='cls1'></input>
</body>
</html>

运行代码
E[foo*="abc"]:匹配任何有foo属性值,且属性值包含"abc"的E元素。
说明:虽然w3c组织未把该选择器列在标准之中,但是5大浏览器都支持(除IE6及IE6以下版本),已经是事实标准

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>css属性选择器</title>
<style type="text/css">
input[class*='cls1']{border:solid 1px #f00} /*--ie7才开始支持(该属性区分大小写)--*/
</style>
</head>
<body>
<input type="text" class="cls1-cls2-cls3" value='cls1-cls2-cls3'></input>
<input type="text" class="cls2cls1" value='cls2cls1'></input>
<input type="text" class="Cls1" value='Cls1'></input>
</body>
</html>

运行代码 

E.warning:相当于E[class~="warning"],匹配任何使用了warning样式类的E元素。

E#myid:相当于E[id='myid'],匹配任何id为myid的E元素。

E:before和E:after ,这是二个很少用的伪类,用于在E元素前后显示一些内容(IE8才开始支持)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>after,before伪类</title>
<style type="text/css">
*{font-size:12px;line-height:20px;}
.cls1:before{content:"欢迎光临我的网站";display:block;border-bottom:solid 1px #ccc;line-height:25px;}
.cls1:after{content:"版权所有 2009";display:block;border-top:solid 1px #ccc;line-height:25px;}
</style>
</head>
<body>
<p class="cls1">这是一段文字,演示伪类的用法,只有在IE8或Safari,Chrome,FireFox,Chrome,Opera上才能看见before,after的内容</p>
</body>
</html>

运行代码 

以上属性选择器可以在http://www.w3.org/TR/CSS2/selector.html查到官方权威信息

时间: 2024-10-21 18:05:09

css2.1中的属性选择器(css高手请绕道)的相关文章

jQuery中复合属性选择器用法实例_jquery

本文实例讲述了jQuery中复合属性选择器用法.分享给大家供大家参考.具体分析如下: 此选择器能够匹配同时满足多个属性条件的元素. 语法结构: 复制代码 代码如下: [selector1][selector2][selectorN] 参数列表: 参数 描述 selector1 属性选择器. selector2 另一个属性选择器,用以进一步缩小范围. selectorN 任意多个属性选择器,也是用来缩小范围. 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html&g

整理了二个基本的css库(高手请绕道)

前一阵公司唯一的前端开发人员走掉了,短期内也没人顶上来,所以切页面/js这种活儿只能咱自个儿揽过来了,花了大半天捣鼓了下css,整理了二个基本的css库,方便以后切页面,贴在这里备份 说明:p.css ---即public.css,用来定义一些常见的公用样式l.css ---即layout.css,用来定义栅格系统的常用布局(不清楚栅格系统的统子们,先到这里扫扫盲http://www.cnblogs.com/yjmyzz/archive/2009/08/20/1550653.html-学习网页栅

maven 在myeclipse中打jar的问题..高手请进~~急!!

问题描述 UnabletolocatetheJavacCompilerin:E:MyEclipse6.5jre..libtools.jarPleaseensureyouareusingJDK1.4oraboveandnotaJRE(thecom.sun.tools.javac.Mainclassisrequired).InmostcasesyoucanchangethelocationofyourJavainstallationbysettingtheJAVA_HOMEenvironmentva

《HTML 5与CSS 3权威指南(第3版·下册)》——19.2 属性选择器

19.2 属性选择器 19.2.1 属性选择器概述 在HTML中,通过各种各样的属性,我们可以给元素增加很多附加信息.例如,通过width属性,我们可以指定div元素的宽度,通过id属性,我们可以将不同的div元素进行区分,并且通过JavaScript来控制这个div元素的内容和状态. 接下来,我们在代码清单19-1中看一个HTML页面,该页面中包含一些div,每个div之间用id属性进行区分. 代码清单19-1 一个具有很多div元素的页面 接下来,我们回顾一下CSS 2中对div元素使用样式

jQuery中的基本选择器用法学习教程_jquery

一.简单选择器在使用jQuery 选择器时,必须使用"$()"函数来包装CSS 规则.而CSS 规则作为参数传递到jQuery 对象内部后,再返回包含页面中对应元素的jQuery 对象.随后,就可以对这个获取到的DOM 节点进行行为操作了. #box {//使用ID 选择器的CSS 规则 color:red;//将ID 为box 的元素字体颜色变红 } 在jQuery 选择器里,我们使用如下的方式获取同样的结果: $('#box').css('color', 'red');//获取DO

CSS命中目标:子选择器、相邻同胞选择器与属性选择器等

在CSS布局网页开发中,我们还会用到一常非常有用的选择器,可以用它来进行整体布局声明,这就是通用选择器.看下面的代码:  代码如下 复制代码 * {     margin:0;     padding:0; } 这种形式的代码一般不会多次出现,在页面代码中出现一次而已,但它的功能是非常强大的,在计算机领域中一般情况下都约定"*"为通配符,它的声明将会作用于页面中所有的可用元素,使用它可以定义一些页面中基本的规则,如边距margin.填充padding.字体font-family.文字大

CSS3中属性选择器使用方法详解

注释: 一.属性选择器除了IE6不支持外,其他的浏览器都能支持. 二.E[attr="value"]和E[attr*="value"]是最实用的,其中E[attr="value"]能帮我们定位不同类型的元素,特别是表单form元素的操作,比如说input[type="text"],input[type="checkbox"]等,而E[attr*="value"]能在网站中帮助我们匹配不同

用CSS属性选择器控制链接样式

css|控制|链接 有时我们可能希望内部链接与外部链接显示不同的样式,如外部链接.我想在链接的旁边加上一个小图标,以表示其是一个外部的链接,来告诉来访者,让他们来确认是在新窗口打开还是在本窗口打开.我们可能会这样做: .external{   background:url(images/external.gif) no-repeat right top;  padding-right:12px;} 然后给每一个外部的链接应用该CSS,当然,这样做并不是不可以,只是太繁琐. 那有没有好的办法来实现

《HTML 5与CSS 3权威指南(第3版·下册)》——19.2 属性选择器

19.2 属性选择器 19.2.1 属性选择器概述 在HTML中,通过各种各样的属性,我们可以给元素增加很多附加信息.例如,通过width属性,我们可以指定div元素的宽度,通过id属性,我们可以将不同的div元素进行区分,并且通过JavaScript来控制这个div元素的内容和状态. 接下来,我们在代码清单19-1中看一个HTML页面,该页面中包含一些div,每个div之间用id属性进行区分. 代码清单19-1 一个具有很多div元素的页面 <!DOCTYPE html PUBLIC "