CSS 选择器

css 常用的选择器分简单选择器、复杂选择器、通配符选择器三类,

简单选择器有以下几种

1、id选择器 

页面元素有id的,可以为该id元素指定样式,如有一个层<div id="mydiv"></div>,mydiv这个层的样式表可以这样定义

#mydiv{

margin:0 auto;

color:#c00;

blackground:#9999;

}

id选择器通过 "#"号+id名来给某一id的元素指定样式。

2、类别(class)选择器

在CSS里用一个点开头表示类别选择器定义,如:

.mycolor{

color:#c00;

blackground:#9999;

}

在页面中,对某一元素可以用class="类别名"的方法调用,如<span class="mycolor">我的颜色</span>

可以根据需要随时添加和删除。

3、标签选择器

css中可以直接将html标签作为选择器,如:

div { height:30px;width:20px;blackground:#9999}

p { font:16px;}

em { color:red;}

dl { float:left; margin-top:10px;}

简单选择器的优先级为ID选择器>类别选择器>标签选择器

复杂选择器主要包括以下几种:

1、交集选择器

一个标签选择器后边跟一个类选择器或者一个ID选择器,中间不能有空格。它要求必须是属于某一个标签的,并且声明了类选择器或者ID选择器。只有这样它才能被选中。如:

div.mycolor{…}      类别为mycolor的层才会被选中,应用该样式。

div#mydiv{…}        ID为mydiv的层才会被选中,应用该样式。

2、并集选择器

就是多个选择器以逗号相连,只要满足其中之一它都会被选中。如:

Div,p,h1,div.mycolor,div#mydiv{…}

在希望一些元素具有共同的样式,那么就可以把这些选择器放在一起以逗号相连,只要满足其中一个选择器的要求,就会把样式赋给它。

3、后代选择器(包含选择器)

是以空格相连的的多个选择器,如:

Div h1.first span.firstletter{…}

这个元素是属于span的并且声明了firstletter类别,然后这个整体又必须是h1中声明了first类的,而这个整体又是div中的。只有这样的一个关系的元素才能被选中。

E1 E2 { sRules }   被满足选择器E1条件的元素包含的,满足选择器E2条件的元素 。即 E1.contains(E2)==true,后代选择器产生的影响不仅限于元素的“直接后代”,而且会影响到它的“各级后代”。

4、子选择器

就是只有对直接后代有影响的选择器,而对“孙子”以及对个层的后代不产生作用。
格式如下:p>span{color:blue;}

通配符选择器

它是一种特殊的选择器,它用*符号表示,它可以定义文档中所有元素对象的样式。如:

*{Font-size:12px;} 会影响文档中的所有元素,即文档中的文字将以12px显示。

* { margin : 0; padding : 0; }  这样定义是把所有的元素的边距(margin)和补白(padding)定义为0,以清除浏览器的缺省样式。

通配选择器也可以用来定义某元素下的所有元素,例如:

div * { background-color: blue; } 则<div>的所有后代元素的背景色都为蓝色。

通配符选择器一般常用于文档中各种元素的共同属性如字号,字体,字的颜色,行高或清除浏览器的内置样式等。

伪类选择器

伪类可以看做是一种特殊的类选择符,是能被支持CSS的浏览器自动所识别的特殊选择符。它的最大的用处就是可以对链接在不同状态下定义不同的样式效果。也就是动态链接伪类的语法是在原有的语法里加上一个伪类(pseudo-class):selector:pseudo-class {property: value}(选择符:伪类 {属性: 值})伪类和类不同,是CSS已经定义好的,不能象类选择符一样随意用别的名字,根据上面的语法可以解释为对象(选择符)在某个特殊状态下(伪类)的样式。类选择符及其他选择符也同样可以和伪类混用:selector.class:pseudo-class {property: value}(选择符.类:伪类 {属性: 值})。

常用的伪类

最常用的是4种a(锚)元素的伪类,它表示动态链接在4种不同的状态:link、visited、active、hover(未访问的链接、已访问的链接、激活链接和鼠标停留在链接上)。注意: 有时这个链接访问前鼠标指向链接时有效果,而链接访问后鼠标再次指向链接时却无效果了。这是因为你把hover放在了a:visited的前面,这样的话由于后面的优先级高,当访问链接后就忽略了a:hover的效果。所以根据叠层顺序,我们在定义这些链接样式时,一定要按照a:link, a:visited, a:hover, a:actived的顺序书写。

首字和首行(first-letter和first-line)的伪类,可以对元素的首字或首行设定不同的样式。下面看这个例子,我们在段落标记里定义文本首字尺寸为默认大小的3倍:
                    <style type=”text/css”>
                    p:first-letter {font-size: 300%}
                    </style>
                    ……
                    <p>
                    这是一个段落,这个段落的首字被放大了。
                    </p>

posted @ 2009-10-30 17:17  迷茫中的游魂  阅读(1722)  评论(1编辑  收藏  举报