[摘要]无论您是初学者还是经验丰富的CSS开发人员,您都可能听说过伪类。最着名的伪类可能是:hover,当指针设备(例如鼠标)指向它时,它允许我们在处于悬停状态时对元素进行样式化。按照我们之前关于margi...
无论您是初学者还是经验丰富的CSS开发人员,您都可能听说过伪类。最着名的伪类可能是:hover,当指针设备(例如鼠标)指向它时,它允许我们在处于悬停状态时对元素进行样式化。
按照我们之前关于margin:auto和CSS Floats的内容介绍,我们在这篇文章中对伪类进行了更深入的研究。我们将看到什么是伪类,它们是如何工作的,我们如何对它们进行分类,以及它们与伪元素的区别。(推荐教程:css视频教程)
什么是伪类?
一个伪类是我们可以为了增加CSS选择一个关键字定义一个特殊状态的属于HTML元素。我们可以使用冒号语法 将伪类添加到CSS选择器,:如下所示:a:hover{ ... }
一个CSS类是我们可以添加到HTML我们想申请,同一款式的规则元素,例如顶部菜单项或侧边栏小工具的标题属性。换句话说,我们可以使用CSS类对以某种方式相似的HTML元素进行分组或分类。
伪类与它们类似,因为它们也用于将样式规则添加到共享相同特征的元素。
但是,虽然真正的类是用户定义的并且可以在源代码中被发现,但是例如,基于所属的HTML元素的当前状态,UA(用户代理)(例如web浏览器)添加<div class="myClass">伪类。
伪类和伪元素可以在CSS选择器中使用,但在HTML源代码中不存在。相反,它们在某些条件下由UA“插入”以用于在样式表中寻址。
伪类的目的
常规CSS类的工作是对元素进行分类或分组。开发人员知道他们的元素是如何分组的:他们可以形成类似“菜单项”,“按钮”,“缩略图”等的类来分组,以及后来的类似元素的样式。这些分类基于开发人员自己给出的元素特征。
例如,如果开发者决定使用a <div>作为缩略图对象,则可以使用<div>“缩略图”类对其进行分类。
<div class="thumbnail">[...]</div>
然而,HTML元素具有基于其状态,位置,性质以及与页面和用户的交互的共同特征。这些是HTML代码中通常不标记的特征,但我们可以使用 CSS中的伪类来定位它们,例如: