打印

[教程] CSS入门5:伪类——动态链接

复制内容到剪贴板
代码:
这些教程是我整理的,参考小雨css 2.0手册,hve && Star Ocean得css手册,还有网上的一些资源,关于版权,你就别找我麻烦了。
伪类——动态链接

伪类可以看做是一种特殊的类选择符,是能被支持CSS的浏览器自动所识别的特殊选择符。它的最大的用处就是可以对链接在不同状态下定义不同的样式效果。

1. 语法

伪类的语法是在原有的语法里加上一个伪类(pseudo-class):
selector:pseudo-class {property: value}
(选择符:伪类 {属性: 值})
伪类和类不同,是CSS已经定义好的,不能象类选择符一样随意用别的名字,根据上面的语法可以解释为对象(选择符)在某个特殊状态下(伪类)的样式。

类选择符及其他选择符也同样可以和伪类混用:
selector.class:pseudo-class {property: value}
(选择符.类:伪类 {属性: 值})

2. 锚的伪类

我们最常用的是4种a(锚)元素的伪类,它表示动态链接在4种不同的状态:link、visited、active、hover(未访问的链接、已访问的链接、激活链接和鼠标停留在链接上)。我们把它们分别定义不同的效果:
复制内容到剪贴板
代码:
a:link {color: #FF0000; text-decoration: none} /* 未访问的链接 */
a:visited {color: #00FF00; text-decoration: none} /* 已访问的链接 */
a:hover {color: #FF00FF; text-decoration: underline} /* 鼠标在链接上 */
a:active {color: #0000FF; text-decoration: underline} /* 激活链接 */
(上面这个例子中,这个链接未访问时的颜色是红色并无下划线,访问后是绿色并无下划线,激活链接时为蓝色并有下划线,鼠标在链接上时为紫色并有下划线)
注意:有时这个链接访问前鼠标指向链接时有效果,而链接访问后鼠标再次指向链接时却无效果了。这是因为你把a:hover放在了a:visited的前面,这样的话由于后面的优先级高,当访问链接后就忽略了a:hover的效果。所以根据叠层顺序,我们在定义这些链接样式时,一定要按照a:link, a:visited, a:hover, a:actived的顺序书写。

3. 伪类和类选择符

将伪类和类组合起来用,就可以在同一个页面中做几组不同的链接效果了,例如,我们定义一组链接为红色,访问后为蓝色;另一组为绿色,访问后为黄色:
复制内容到剪贴板
代码:
a.red:link {color: #FF0000}
a.red:visited {color: #0000FF}
a.blue:link {color: #00FF00}
a.blue:visited {color: #FF00FF}
现在应用在不同的链接上:
复制内容到剪贴板
代码:
<a class="red" href="...">这是第一组链接</a>
<a class="blue" href="...">这是第二组链接</a>
4. 其他伪类

此外CSS2还定义了首字首行(first-letter和first-line)的伪类,可以对元素的首字或首行设定不同的样式。
下面看这个例子,我们在段落标记里定义文本首字尺寸为默认大小的3倍:
复制内容到剪贴板
代码:
<style type=”text/css”>
p:first-letter {font-size: 300%}
</style>
……
<p>
这是一个段落,这个段落的首字被放大了。
</p>
我们再定义一个首行样式的例子:
复制内容到剪贴板
代码:
<style type=”text/css”>
div p:first-line {color: red}
</style>
……
<div>
<p>
这是段落的第一行
这是段落的第二行
这是段落的第三行
</p>
</div>
(上例中段落的第一行为红色,第二、三行为默认颜色)

注意:首字和首行的伪类需要IE5.5以上的版本支持。

[ 本帖最后由 blankzheng 于 2007-4-9 17:23 编辑 ]
blog Web标准化交流会 WEB标准群:46077068
辛苦了
辛苦拉。同学。:)
http://www.flashlive.net Be a flasher, attend to flashers' life, live a flash live.....at flashlive.net
学无止境啊!!
学习了

TOP

LZ辛苦了,,大家要好好学哦..
时间不多,不要浪费!

TOP

这一系列帖很实用啊...

TOP

我想问楼主一个问题:在doctype 是这个的时候
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">(DW 2004自带的)
为什么 first-letter和first-line 这些伪类都没有用?
而必须改成<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"">
的时候才可以用?

TOP

http://www.satzansatz.de/cssd/pseudocss.html

经过请教别人和探索,知道问题出在哪里了,空格,必须在{前加上一个空格,群组选择符,每个都加上个,前加上空格!

IE6: There must be a blank between the selector and the declaration block (IE 6 pseudo elements bug) – this is a inconsistency to the normal parsing behavior in standards mode (fixed in IE7b2).

IE6, IE7b2: And there is another problem: "no space before comma", see below.
复制内容到剪贴板
代码:
    p:first-letter{property: value} /*does not work*/
    p:first-letter {property: value} /*fix*/
     
    p:first-letter, .extraneous {property: value} /*does not work*/
    p:first-letter , .extraneous {property: value} /*fix with space before comma*/
下面是调试代码

 提示:您可以先修改部分代码再运行
[ 本帖最后由 greengnn 于 2006-7-15 18:20 编辑 ]
blog Web标准化交流会 WEB标准群:46077068

TOP

谢谢,难怪DW自己生成样式的时候都会加上空格的!

TOP

关于空格的问题,可参看这个贴  http://bbs.blueidea.com/viewthread.php?tid=1978741&page=


关于:first-letter和:first-line伪类。
属性和大括号之间需要有一个空格,如果没有,IE则会忽略这条声明。
不要浮躁

TOP

不错,学习了~

不错,学习了~感觉晕晕的~呵呵~
书吧 欢迎您!

TOP

辛苦了。。css温习中……

辛苦了。。css温习中……
www.dgounet.com

TOP

学习,楼主多多受累哟

TOP

多看看手册有很大帮助

TOP

又学到东西了,常学常进步!

TOP

不错不错,大家都这么强,我也要努力啊

TOP

领教了..........................这么细节的问题,还真遇到,还没解决,这下全明白了.............

TOP

学习中。。标记下。。。
需要照顾

TOP

学无止境

领悟中~~~

TOP

学习```````````
++加++加++

TOP

谢谢楼主
学习一下

TOP

学这篇的时候,最后的
<style type=”text/css”>
div p:first-line {color: red}
</style>
……
<div>
<p>
这是段落的第一行
这是段落的第二行
这是段落的第三行
</p>
</div>
老是出不了效果~

TOP

很不错的教程!

TOP

引用:
原帖由 sempron 于 2006-12-25 17:29 发表
学这篇的时候,最后的
<style type=”text/css”>
div p:first-line {color: red}
</style>
……
<div>
<p>
这是段落的第一行
这是段落的第二行
这是段落的第三行
</p> ...
这位朋友,
复制内容到剪贴板
代码:
<style type=”text/css”>
其中引号有错误,改正后:
复制内容到剪贴板
代码:
<style type="text/css">

TOP

先顶在看!

TOP

学习div+css的好地方!

TOP

原来如北啊!

这么细的地方,好好学习
xilo.cn

TOP

向楼主学习

TOP

努力学习~~~~

TOP