CSS3 怎么分清伪元素和伪类。举例子

如题所述

伪类用于向某些选择器添加特殊的效果。

伪元素用于将特殊的效果添加到某些选择器。


伪类有::first-child ,:link:,vistited,:hover,:active,:focus,:lang 

伪元素有::first-line,:first-letter,:before,:after  


使用伪类:

<style>
p>i:first-child {color: red}
</style>
<p>
    <i>first</i>
    <i>second</i>
</p>

如果我们不使用伪类,而希望达到上述效果,可以这样做:

不使用伪类:

<style>
.first-child {color: red}
</style>
<p>
    <i class="first-child">first</i>
    <i>second</i>
</p>

即我们给第一个子元素添加一个类,然后定义这个类的样式。


使用为元素:

<style>
p:first-letter {color: red}
</style>
<p>I am stephen lee.</p>

那么如果我们不使用伪元素,要达到上述效果,应该怎么做呢?

不使用为元素:

<style>
.first-letter {color: red}
</style>
<p><span class='first-letter'>I</span> am stephen lee.</p>

即我们给第一个字母添加一个 span,然后给 span 增加样式。
两者的区别已经出来了。那就是:

伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。


伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。

:Pseudo-classes         //伪类
::Pseudo-elements       //伪元素

但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。


望采纳!

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-15

伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的 id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和 class 有些类似,但它是基于文档之外的抽象,所以叫伪类。

与伪类针对特殊状态的元素不同的是,伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。

阅读更多

CSS3 怎么分清伪元素和伪类。举例子
伪类有::first-child ,:link:,vistited,:hover,:active,:focus,:lang 伪元素有::first-line,:first-letter,:before,:after 使用伪类:p>i:first-child {color: red} first second如果我们不使用伪类,而希望达到上述效果,可以这样做:不使用伪类:.first-child {color: red} ...

css伪元素和伪类的区别
3.伪类用单冒号:表示;而伪元素用双冒号::表示。4.一个选择器可以同时使用多个伪类(但有的伪类会互斥);而一个选择器只能同时使用一个伪元素(未来的版本可能会支持多伪元素)。

css伪类和伪元素的区别及相关应用
而伪元素则用于选择元素的特定部分,如元素的开始或结束标记,元素的子元素之前或之后的区域等。伪元素能够改变一个元素的基本内容样式,但并不改变实际的DOM结构。常见的伪元素有“::before”、“::after”等。它们常用于插入装饰性的内容或调整元素的结构布局。二、伪类的应用 伪类在CSS中扮演着非常重...

浅谈css伪类和伪元素的区别、优先级
伪元素由两个冒号(::)后跟伪元素的名称组成。::两个冒号这种格式,是为了区别伪类和伪元素。与现有样式表的兼容性,考虑到兼容性有部分伪元素可以同时使用1个或者2个冒号,(即:first-line,:first-letter,:before和:after)。对于css3中引入的新伪元素,则必须要使用2个冒号。每个选择器只能出现...

CSS伪类和伪元素的区别及相关应用
在实际应用中,伪类常用于增强用户体验,比如悬停效果、点击反馈;而伪元素则常用于设计复杂的布局,如CSS3的多列布局、浮动元素清除等。理解并熟练运用伪类和伪元素,可以帮助我们更好地控制网页的样式和布局。总结来说,伪类关注元素的状态变化,是动态的,而伪元素关注元素的内容扩展,是静态的。通过巧妙...

伪类和伪元素的区别
1、语法差异:伪类以单冒号开头(例如:hover),而伪元素以双冒号开头(例如::before)。然而,在某些情况下,一些早期版本的伪元素也可以使用单冒号。2、应用范围:伪类选择元素的特定状态或行为,而伪元素选择元素的特定部分或生成虚拟元素。3、浏览器兼容性:某些较旧的浏览器不支持某些伪元素或伪类...

CSS伪类和伪元素的区别及相关应用
伪类和伪元素在作用上都可以说是在某些选择器添加特殊样式。至于他们的区别和相关应用,我们可以看伪类和伪元素分别都包含什么。伪类:伪元素:

伪类和伪元素的区别是什么?
伪类是类似于添加类所以可以是多个,而伪元素在一个选择器中只能出现一次,并且只能出现在末尾,可以同时使用多个伪类,而只能同时使用一个伪元素,CSS3中伪类和伪元素的语法不同,伪类link,hover,伪元素before,after。相同点都可以用来表示伪类对象,用来设置对象前的内容,before和before写法是等效的,...

HTML中常见伪类和伪元素的区别
提到伪类,在人们的印象中最常用的不过是:hover、:active、:link、:visited,还有css3里的常用伪类选择器:last-child、:first-child、nth-child(n)等等!w3c上对伪类和为元素的定义分别为:伪类:伪类用于向某些选择器添加特殊的效果。伪元素:伪元素用于将特殊的效果添加到某些选择器 css3为了明确伪类和...

css中什么是伪类和伪元素?
伪类一开始单单只是用来表示一些元素的动态状态,典型的就是链接的各个状态(LVHA)。随后CSS2标准扩展了其概念范围,使其成为了所有逻辑上存在但在文档树中却无须标识的“幽灵”分类。伪元素则代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。伪类选择元素基于的是当前...

相似回答