当前位置: 首页 > 图文教程 > 网页制作 > HTML/XHTML教程 > CSS基础教程:认识CSS选择符

HTML/XHTML教程
一些不太常用的XHTML标签用法以及实例
网页中图片的设置涉及的三个问题
商业HTML邮件的制作建议
HTML Marquee 字符片段滚动
DOCTYPE 文档类型声明(网页爱好者必看)
纯HTML标签你熟悉多少?
HTML元素的ID和Name属性的区别
HTML meta的大作用
HTML标签tbody的用法与说明
HTML 特殊字符转换表
HTML基础 HTML的组成结构
HTML基础之HTML内容细则
Shtml 精简教程
浅谈html table 标签
html Frame、Iframe、Frameset 的区别
HTML 网页页面切换的各种变换效果
HTML的10个表格相关标记
让IE8启动IE7兼容模式的代码
HTML 结构化实现方法
xhtml的块级标记小结

HTML/XHTML教程 中的 CSS基础教程:认识CSS选择符


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-04   浏览: 112 ::
收藏到网摘: n/a

原文链接:http://www.jluvip.com/blog/article.asp?id=186

一.选择符模式

模式/含义/内容描述

*
匹配任意元素。(通用选择器)
E
匹配任意元素 E (例如一个类型为 E 的元素)。(类型选择器)
E F
匹配元素 E 的任意后代元素 F 。(后代选择器)
E > F
匹配元素 E 的任意子元素 F 。(子选择器)
E:first-child
当元素 E 是它的父元素中的第一个子元素时,匹配元素 E 。(:first-child 伪类)
E:link E:visited
如果 E 是一个目标还没有访问过(:link)或者已经访问过(:visited)的超链接的源锚点时匹配元素 E 。(link 伪类)
E:active E:hover E:focus
在确定的用户动作中匹配 E 。(动态伪类)
E:lang(c)
如果类型为 E 的元素使用了(人类)语言 c (文档语言确定语言是如何被确定的),则匹配该元素。(:lang() 伪类)
E + F
如果一个元素 E 直接在元素 F 之前,则匹配元素 F 。(临近选择器)
E[foo]
匹配具有”foo”属性集(不考虑它的值)的任意元素 E 。(属性选择器)
E[foo="warning"]
匹配其“foo”属性值严格等于“warning”的任意元素 E 。(属性选择器)
E[foo~="warning"]
匹配其“foo”属性值为空格分隔的值列表,并且其中一个严格等于“warning”的任意元素 E 。(属性选择器)
E[lang|="en"]
匹配其“lang”属性具有以“en”开头(从左边)的值的列表的任意元素 E 。(属性选择器)
DIV.warning
仅 HTML。用法同 DIV[class~="warning"]。(类选择器)
E#myid
匹配 ID 等于“myid”的任意元素 E 。(ID 选择器)

Quote

From:http://www.w3.org/TR/CSS2/selector.html

我们用下面的例子来解释“父元素”、“子元素”、“父/子”及“相邻”这几个概念。

<div title="这是一个div">
<h1>这是是h1的内容</h1>
<p>这是一个段落p的内容!<strong>这里是strong的内容</strong>这是一个段落p的内容!</p>
</div>

从以上代码中,我们可以找出这样的关系:

* h1 和 p 同为 div 的“儿子”,两者分别同 div 形成“父/子”关系。
* h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之内)
* div 是 h1 和 p 的“父元素”。
* strong 和 p 形成“父/子”关系,strong 的“父元素”是 p 。
* 但 strong 和 div 并非“父/子”关系,而是“祖孙”关系,但 strong 依然是 div 的“子(孙)元素”。
* div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孙)元素”。
* h1 和 p 两者是相邻的。

继承上面的实例来具体演示一下E F的关系:假如,我们需要将 strong 内的内容二字变为绿色,我们可以有哪些方法呢?

div strong {color:green;} /* - 正确。strong 是 div 的“子元素”*/
p > strong {color:green;} /* - 正确。strong 和 p 是“父/子”关系*/
div > strong {color:green;} /* - 错误!strong 虽然是 div 的“子(孙)元素”,但两者乃是“祖孙”关系,而非“父/子”关系,因此不能用 > 符号连接*/

临近选择器和通用选择器:通用选择器以星号“*”表示,可以用于替代任何 tag 。

实例:

h2 + * { color:green }/*所有紧随 h2 的元素内的文字都将呈现红色*/

二.选择符分类介绍

1.通配选择符

语法:

* { sRules }

说明:

通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。
假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。

示例:

*[lang=fr] { font-size:14px; width:120px; }
*.div { text-decoration:none; }

2.类型选择符

语法:

E { sRules }

说明:

类型选择符。以文档语言对象(Element)类型作为选择符。

示例:

td { font-size:14px; width:120px; }
a { text-decoration:none; }

3.属性选择符

语法:

E [ attr ] { sRules }
E [ attr = value ] { sRules }
E [ attr ~= value ] { sRules }
E [ attr |= value ] { sRules }

说明:

属性选择符。
选择具有 attr 属性的 E
选择具有 attr 属性且属性值等于 value 的 E
选择具有 attr 属性且属性值为一用空格分隔的字词列表,其中一个等于 value 的 E 。这里的 value 不能包含空格
选择具有 attr 属性且属性值为一用连字符分隔的字词列表,由 value 开始的 E

示例:

h[title] { color: blue; }
/* 所有具有title属性的h对象 */

span[class=demo] { color: red; }

div[speed="fast"][dorun="no"] { color: red; }

a[rel~="copyright"] { color:black; }

4.包含选择符

语法:

E1 E2 { sRules }

说明:

包含选择符。选择所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。

示例:

table td { font-size:14px; }

div.sub a { font-size:14px; }

5.子对象选择符

语法:

E1 > E2 { sRules }

说明:
子对象选择符。选择所有作为 E1 子对象的 E2 。

示例:

body > p { font-size:14px; }
/* 所有作为body的子对象的p对象字体尺寸为14px */

div ul>li p { font-size:14px; }

6.ID选择符

语法:

#ID { sRules }

说明:
ID选择符。以文档目录树(DOM)中作为对象的唯一标识符的 ID 作为选择符。

示例:

#note { font-size:14px; width:120px;}

7.类选择符

语法:

E.className { sRules }

说明:
类选择符。在HTML中可以使用此种选择符。其效果等同于E [ class ~= className ] 。请参阅属性选择符( Attribute Selectors )。
在IE5+,可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:<div class="class1 class2">。

示例:

div.note { font-size:14px; }
/* 所有class属性值等于(包含)"note"的div对象字体尺寸为14px */

.dream { font-size:14px; }
/* 所有class属性值等于(包含)"note"的对象字体尺寸为14px */

8.选择符分组

语法:

E1 , E2 , E3 { sRules }

说明:
选择符分组。将同样的定义应用于多个选择符,可以将选择符以逗号分隔的方式并为组。

示例:

.td1,div a,body { font-size:14px; }
td,div,a { font-size:14px; }

9.伪类及伪对象选择

语法:

E : Pseudo-Classes { sRules }
E : Pseudo-Elements { sRules }

说明:
伪类及伪对象选择符。
伪类选择符。请参阅伪类( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。
伪对象选择符。请参阅伪对象( Pseudo-Elements )[:first-letter :first-line :before :after]。

示例:

div:first-letter { font-size:14px; }
a.fly :hover { font-size:14px; color:red; }