css 伪类的使用方法详解

作者:袖梨 2022-06-25


css 伪类这个词很奇怪, 在我看来更像标识了特殊状态的标签.

和程序中的类什么的, 一点关系都没有.

伪类用:跟在选择器后面,标识了一些状态

::表示 css3 新增的一些伪类, 建议全部都使用::.这年头还不支持 css3 的浏览器可以不管了

比如这几个伪类:

link 链接还没被用户点击
visited 已经点击的链接
hover 鼠标指针悬停在链接上
active 链接正在被点击(鼠标在元素上按下,还没有释放)
::first-letter 给我感觉更像一个增强选择器

p::first-letter {font-size:300%;}
p::first-line {font-variant:small-caps;} 同上

p.age::before {content:"Age: ";}
p.age::after {content:" years.";}

这个已经是改

CSS :active 伪类,适用于一个元素被激活时的样式

语法: :active
CSS版本:CSS1

说明:
适用于一个元素被激活时的样式,例如鼠标在此元素的区域内按下但还没有释放时
客户端(浏览器)可以根据用户与其交互的动作改变其渲染效果,CSS为这种情况提供了三个伪类:hover、active、focus
上述三种伪类不是互斥的,一个元素同时可以适用其中的若干个
:active伪类,适用于一个元素被用户激活时,例如用户在按下鼠标之后放开鼠标之前的这一段时间内。当用户放开鼠标后,恢复元素原有的样式
active,中文"激活、活跃"的意思


语法

:active
a:active
a.class:active
示例

a:active
{
 color:yellow;
 background:blue;
 font-size:small;
}
p:active
{
 color:yellow;
 background:blue;
 font-size:large;
}
div:active
{
 color:red;
 background:lime;
 font-size:small;
}
CSS :active 伪类示例 -- 可以尝试编辑

CSS :active 伪类示例
伪类选择符的顺序:L-V-H-A

CSS提供了四种元素设置链接的颜色,包括:link、:visited、:hover、:active,它们的声明是有一定顺序的,我们简称这种顺序为L-V-H-A,即link最先,其次visited,之后hover,最后active,如此声明才能保证hover与active状态显示正确的样式

示例

统一定义链接各种状态下的样式

a:link
{
 color:red;
}
a:visited
{
 color:green;
}
a:hover
{
 color:yellow;
 background:blue;
}
a:active
{
 color:lime;
 background:red;
}
CSS :active 伪类示例 -- 可以尝试编辑

CSS伪类示例,统一定义链接各种状态下的样式
一个页面可以定义多个链接样式

可以在一个页面定义多种链接样式,例如下面示例定义了灰色与白色两种样式的连接

.gray:hover,.gray:focus,.gray:active,.gray:link,.gray:visited
{
 color:#999;
}

.white:hover,.white:focus,.white:active,.white:link,.white:visited
{
 color:#000;
 font-weight:bold;
}
CSS :active 伪类示例 -- 可以尝试编辑

CSS伪类示例,一个页面定义多个链接样式
IE浏览器不支持A元素以外的其它元素的:active伪类

IE6、IE7(Q)、IE8(Q)浏览器不支持A元素以外的其它元素的:active伪类


CSS3 target伪类

CSS3 target伪类是众多实用的CSS3特性中的一个。它用来匹配文档(页面)的URI中某个标志符的目标元素。具体来说,URI中的标志符通常会包含一个”#”字符,然后后面带有一个标志符名称,比如#respond,target就是用来匹配ID为respond的元素的。

现在在页面中,点击一个ID链接后,页面只会跳转到相应的位置,但是并不会有比较明显的UI标识,使用:target伪类可以像:hover等伪类一样对目标元素定义样式。

浏览器支持

因为我们在讨论CSS3,所以它现在被除了IE6-8以外的所有浏览器支持,但是IE9会支持这个伪类。这是相当遗憾的,但是这个现实并不影响你使用它。

如何使用:target

:target伪类和:hover、:link、:visited、:focus等伪类的用法是一样的:

selector:target{ color:red; /other styles/ }

实例

让我们通过一个简单的例子来演示。比如我们在页面中常常会用到tab,之前我们要用脚本来实现,YUI、jQuery也都有这样的插件或者模块,但是现在我们用:target伪类就可以实现。

HTML结构:

标签一
标签二
标签三
#### CSS3代码:
/layout styles/ .tab_content { position: absolute;/set content box as absolute/ /other layout styles/ } #tab1:target, #tab2:target, #tab3:target { z-index: 1; }

原理想必大家都看懂了,就是将tab内容框设置为绝对定位,然后通过:target伪类调整其z-index。

相关文章

精彩推荐