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

简介: 早上看了司徒先生的js版属性选择器(http://www.cnblogs.com/rubylouvre/archive/2009/10/27/1590102.html),也激发了我深入了解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查到官方权威信息

目录
相关文章
|
2月前
|
前端开发
CSS属性:盒子模型
CSS属性:盒子模型
31 0
|
2月前
|
前端开发
CSS属性
CSS属性
29 0
|
10天前
|
Web App开发 前端开发 iOS开发
css所有缩写属性,CSS属性简写整理
css所有缩写属性,CSS属性简写整理
12 1
|
2月前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
28 3
前端基础(五)_CSS文本文字属性、背景颜色属性
|
30天前
|
前端开发
CSS 中哪些属性可以继承
在 CSS 中,属性分为可继承与不可继承。可继承属性会在子元素中沿用父元素的样式设定。常见可继承属性包括:文本属性(如 `font-family`, `color`),列表属性(如 `list-style`),表格布局属性(如 `border-collapse`),以及其他如 `visibility` 和 `direction` 等属性。正确理解这些属性有助于更高效地进行样式设计。
|
10天前
|
前端开发
css简写属性
css简写属性
20 0
|
27天前
|
前端开发 JavaScript
如何在CSS中添加自定义属性
如何在CSS中添加自定义属性
11 0
|
27天前
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
23 0
|
29天前
|
前端开发
哪些 CSS 属性可以继承?
哪些 CSS 属性可以继承?
41 0
|
2月前
|
前端开发
Vue3基础(十ba)___在css中使用props或者计算属性的变量,来实现动态样式
本文介绍了如何在Vue3中通过CSS变量和props或计算属性来实现动态样式。
35 0