CSS伪类与伪元素的区别

简介: CSS伪类与伪元素的区别

CSS中的伪类(Pseudo-classes)和伪元素(Pseudo-elements)是两个不同的概念,它们的主要区别在于它们的作用和目标。

伪类(Pseudo-classes)

伪类用于选择处于特定状态的元素。这些状态并不是由HTML直接定义的,而是由CSS来定义的。伪类最常见的用途是改变用户与元素交互时的样式,例如鼠标悬停(:hover)、活动状态(:active)、已访问链接(:visited)等。

一些常见的伪类包括:

  • :hover:用户鼠标悬停在元素上时的样式。
  • :active:元素被用户激活(如鼠标点击但尚未释放)时的样式。
  • :visited:用户已访问的链接的样式。
  • :focus:元素获得焦点时的样式(如通过点击或Tab键)。
  • :first-child:last-child:nth-child():选择特定位置的子元素。
  • :checked:用于选择被选中的<input type="checkbox"><input type="radio">元素。

伪元素(Pseudo-elements)

伪元素用于选择元素的特定部分或创建元素的抽象部分。这些部分并不是实际的HTML元素,而是由CSS创建的虚拟元素。最常见的伪元素是::before::after,它们允许你在元素的内容之前或之后插入内容。

一些常见的伪元素包括:

  • ::before:在元素内容之前插入内容。
  • ::after:在元素内容之后插入内容。
  • ::first-line:选择文本块的第一行。
  • ::first-letter:选择文本块的首字母。

主要区别

  1. 用途:伪类用于选择元素的特定状态,而伪元素用于选择元素的特定部分或创建虚拟元素。
  2. 内容:伪类不添加新的内容到文档中,它们只是基于元素的当前状态改变样式。伪元素可以向文档中添加新的内容。
  3. 数量:伪类可以有多个元素匹配(例如,多个链接可以被:visited伪类选中),而伪元素通常只应用于一个元素(例如,一个元素只能有一个::before和一个::after)。
  4. 语法:在CSS3中,伪元素的双冒号(::)语法被引入以区分伪类和伪元素。虽然很多浏览器仍然接受单冒号(:)语法用于伪元素,但使用双冒号(::)是更规范的做法。


相关文章
|
6天前
|
前端开发
CSS基础之伪元素选择器(如果想知道CSS的伪元素选择器知识点,那么只看这一篇就足够了!)
CSS基础之伪元素选择器(如果想知道CSS的伪元素选择器知识点,那么只看这一篇就足够了!)
|
6天前
|
前端开发
CSS基础之伪类选择器(如果想知道CSS的伪类选择器知识点,那么只看这一篇就足够了!)
CSS基础之伪类选择器(如果想知道CSS的伪类选择器知识点,那么只看这一篇就足够了!)
|
4天前
|
XML 前端开发 JavaScript
HTML、CSS、JavaScript有什么区别
HTML、CSS、JavaScript有什么区别
|
1天前
|
前端开发
技术经验分享:CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解
技术经验分享:CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解
|
2天前
|
移动开发 前端开发 HTML5
CSS 盒子模型(溢出显示、伪元素)
CSS 盒子模型(溢出显示、伪元素)
|
9天前
|
前端开发
css常用的伪类有哪些
css常用的伪类有哪些
10 0
|
1天前
|
安全 JavaScript
旋转木马轮播图 html+css+js
旋转木马轮播图 html+css+js
|
1天前
|
移动开发 前端开发 JavaScript
HTML5+CSS3+JavaScript网页实战
HTML5+CSS3+JavaScript网页实战
|
6天前
|
前端开发
HTML+CSS练习小项目——百叶窗
HTML+CSS练习小项目——百叶窗
|
10天前
|
编解码 前端开发
编写代码中常见问题汇总(html和css)
text-indent用于首行缩进,line-height与height相同实现垂直居中;vertical-align:middle用于行内元素居中;text-align:center做水平居中;list-style:none清除列表符号;overflow:hidden隐藏溢出;background-repeat:no-repeat阻止平铺;float:left实现横排;相对定位父元素,绝对定位子元素;box-sizing调整盒子模型;用边框或overflow解决盒子塌陷;
30 5