CSS入门:css选择符

css

一.选择符模式
模式/含义/内容描述

*
匹配任意元素。(通用选择器)
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 选择器)

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

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

<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; }

时间: 2024-09-30 22:43:52

CSS入门:css选择符的相关文章

浏览器IE6不支持的CSS样式的选择符

1. child selector h1 > strong { color:red;} 无效, 只能使用 h1 strong {color:red; } 不支持子选择符,但支持派生选择符. 2.sibling selector li+li { font-style:bold; } 无效. 3.Pseudo-Class Selector有限支持. a:link :visited { color:#fff;},只认最后一个:visited. 最好按如下顺序写: a:link {color: navy

解析css中的选择符命名

  原来命名可以这样的 前一段时间,在某一站点看到了这样的内容: "这也可以?"是我对此的第一印象.不过,稍作调查知道了,这样写确实是有效的.此外,这个?_?的符号表情,看起来是不是相当有存在感?再看看搭配的css属性,display: none !important;即定义元素一定不显示,是不是也非常符合这个表情想要表达的意思? 只要遵循css语法,就可以很好地应用这种不常见的命名. 命名字符的规定 英文单词的组合你一定很熟悉,例如.top_nav用来表示顶部导航,不仅用了合法的选择

CSS中的选择符实际使用指南

  在我最早开始写css的时候,其代码上的高自由度就一直很令我困惑.这就是说,同一个设计,如果让不同的人来实现,最终的代码一定是有差异的.但这存在一个问题,如果不同的人通过不同的方法以及代码风格,都从外观上实现了一样的设计,将很难评价谁做得更好.想来也是,既然都实现了设计,达到了目的,css这种没有程序逻辑的代码中,又能找出什么来说明谁做得更出色呢? 而如今,我认同的观念是,css这种描述性语言,仍然有着代码上的质量评判.评判标准就是可维护性(Maintainability)和性能(Perfor

网页制作知识之详细讲解CSS选择符

css|网页 一.选择符模式 模式/含义/内容描述 * 匹配任意元素.(通用选择器) E 匹配任意元素 E (例如一个类型为 E 的元素).(类型选择器) E F 匹配元素 E 的任意后代元素 F .(后代选择器) E > F 匹配元素 E 的任意子元素 F .(子选择器) E:first-child 当元素 E 是它的父元素中的第一个子元素时,匹配元素 E .(:first-child 伪类) E:link E:visited 如果 E 是一个目标还没有访问过(:link)或者已经访问过(:v

深入学习网页技术CSS中选择符的应用

css|网页 一.选择符模式 模式/含义/内容描述 * 匹配任意元素.(通用选择器) E 匹配任意元素 E (例如一个类型为 E 的元素).(类型选择器) E F 匹配元素 E 的任意后代元素 F .(后代选择器) E > F 匹配元素 E 的任意子元素 F .(子选择器) E:first-child 当元素 E 是它的父元素中的第一个子元素时,匹配元素 E .(:first-child 伪类) E:link E:visited 如果 E 是一个目标还没有访问过(:link)或者已经访问过(:v

CSS初级教程&amp;nbsp;选择符&amp;nbsp;属性和值

HTML有标签(tag),CSS就有选择符(selector).选择符就是赋予内部或者外部样式表的名字.在 CSS初级指南中,我们致力于HTML选择符,即是HTML的标签,用来改变一个指定标签的样式.每个选择符都有属性(properties)在大括号{}中,里面包括诸如color.font-weighth或者 background-color形式的字样.值(value)在半角英文引号:后面,用半角英文分号;隔离. body { font-size: 0.8em; color: navy; } 如

javascript中获取页面所有选择符的css规则实现代码

 代码如下 复制代码 <script type="text/javascript"> /* ################################################### * 说明:用 javascript 获取页面上有选择符的 CSS 规则 * 包括'内部样式块'和'外部样式表文件' * 作者:Yanfu Xie [xieyanfu@yahoo.com.cn] * 网址:http://www.111cn.net * 日期:2007.01.16 *

CSS选择符详解

核心提示:什么是类型选择符?指以网页中已有的标签类型作为名称的行径符.body是网页中的一个标签类型,div,p,span都是. 一.类型选择符 什么是类型选择符?指以网页中已有的标签类型作为名称的行径符.body是网页中的一个标签类型,div,p,span都是.如下: body {}div {}p {}span {} 二.群组选择符 对于XHMTL对象,可以对一组同时进行了相同的样式指派.使用逗号对选择符进行了分隔,这样书写的优点在于同样的样式只需要书写一次即可,减少代码量,改善CSS代码结构

争夺特定选择符控制权的多个CSS样式表

CSS样式 层叠顺序 当使用了多个样式表,样式表需要争夺特定选择符的控制权.在这些情况下,总会有样式表的规则能获得控制权.以下的特性将决定互相对立的样式表的结果. 正如以前所提及的,网页制作者和读者都有能力去指定样式表.当两者的规则发生冲突,网页制作者的规则会凌驾于读者的其它相同权重的规则.而网页制作者和读者的样式表都超越浏览器的内置样式表. 网页制作者应该小心地使用! important 规则,因为它们会超越用户任何的! important 规则.例如,一个用户由于视觉关系,会要求大字体或指定