伪类选择器实质

未匹配的标注

为何称作 “伪类” ? 伪就是不真实的,又是什么意思?也就是说根据文档无法准确得知当前元素应用的样式。

<!-- 可以准确得知a标签的样式 -->
<style>
    a {color:blue;}
    .b {text-align:center;}
</style>
<a href=""  class="b" style="font-size:12px;">

<!-- 不能准确得知a标签的样式 -->
<style>
    a:link {color:blue;}
    a:visited {color:red;}
</style>
<a href="">

a 处于未访问链接状态时,是蓝色的;并且可以预见当它处于已访问链接状态时,将是红色的。把这种为某些元素的状态幻象出来的类叫做 “伪类”。打个比方,指定一个人脸色的样式,是微红的;那么伪类是当他发怒时脸色是通红的,当他惊吓时脸色是白色的,这种幻象出来的类叫做 “伪类”。

再深入了解伪类是如何作用的,当 a 链接未访问时,a:link 相当于给 a 元素应用了 link 的类。

a.link {color:blue;}
<a href="" class="link">

a 链接已访问时,a:visited 相当于给 a 元素应用了 visited 的类。

a.visited {color:red;}
<a href="" class="visited">

可以理解为 css 动态处理的,然而 visited 类在文档中是找不到的,你也可以这样理解 “伪类” 。

下面介绍前文没有介绍的一个静态伪类 :first-child,通过本篇相信能容易的理解。

li:first-child { font-weight:bold; }
<ul>
    <li>我是ul的子元素</li>
    <li>我是ul的子元素</li>
    <li>我是ul的子元素</li>
</ul>

伪类选择器实质

以上代码相当于:

li.first-child { font-weight: bold; }
<ul>
    <li class="first-child">我是ul的子元素</li>
    <li>我是ul的子元素</li>
    <li>我是ul的子元素</li>
</ul>

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~