CSS中伪类和伪元素的详细介绍(代码示例)

夏杰吖_6827

夏杰吖_6827

2019-01-24

4202人浏览

转载

本篇文章给大家带来的内容是关于CSS中伪类和伪元素的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一、伪类

伪类包含两种:状态伪类(UI 伪类)和结构性伪类。

(1)状态伪类是基于元素当前状态进行选择的。

在与用户的交互过程中元素的状态是动态变化的,因此该元素会根据其状态呈现不同的样式。当元素处于某状态时会呈现该样式,而进入另一状态后,该样式也会失去。

常见的状态伪类主要包括:

:link 应用于未被访问过的链接;  :hover 应用于鼠标悬停到的元素;  :active 应用于被激活的元素;  :visited 应用于被访问过的链接,与:link互斥。  :focus 应用于拥有键盘输入焦点的元素。 :target 应用于链接点击后指向元素

前 4 个伪类的特指度相同,如果不按照这里列出的顺序使用它们,浏览器可能不会显示预期结果。为了好记,可以这么想:“LoVe? HA!”大写字母就是每个伪类的头一个字母。

input:focus {border:1px solid blue;}

会在光标位于 input 字段中时,为该字段添加一个蓝色边框。这样可以让用户明确
地知道输入的字符会出现在哪里。

<a>More Information</a>
<h2>This is the information you are looking for.</h2> 
#more_info:target {background:#eee;}

会在用户单击链接转向 ID 为 more_info的元素时,为该元素添加浅灰色背景。

(2)结构性伪类是css3新增选择器

利用dom树进行元素过滤,通过文档结构的互相关系来匹配元素,能够减少class和id属性的定义,使文档结构更简洁。

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载

常见的包括:

:first-child 选择某个元素的第一个子元素;  
:last-child 选择某个元素的最后一个子元素;  
:nth-child() 选择某个元素的一个或多个特定的子元素;  
:nth-last-child() 选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;  
:nth-of-type() 选择指定的元素;  
:nth-last-of-type() 选择指定的元素,从元素的最后一个开始计算;  
:first-of-type 选择一个上级元素下的第一个同类子元素;  
:last-of-type 选择一个上级元素的最后一个同类子元素;  
:only-child 选择的元素是它的父元素的唯一一个子元素;  
:only-of-type 选择一个元素是它的上级元素的唯一一个相同类型的子元素;  
:empty 选择的元素里面没有任何内容。

二、伪元素

伪元素是对元素中的特定内容进行操作,而不是描述状态。它的操作层次比伪类更深一层,因此动态性比伪类低很多。实际上,伪元素就是选取某些元素前面或后面这种普通选择器无法完成的工作。控制的内容和元素是相同的,但它本身是基于元素的抽象,并不存在于文档结构中!

常见的伪元素选择器包括:

:first-letter 选择元素文本的第一个字(母)。  
:first-line 选择元素文本的第一行。  
:before 在元素内容的最前面添加新内容。  
:after 在元素内容的最后面添加新内容。

三、注意

单冒号(:)用于 CSS3 伪类,双冒号(::)用于 CSS3 伪元素,为了兼容某些浏览器,一般都采用单冒号

兼容性的问题,交给postcss去做。本文并未涉及兼容性的写法,包括前缀问题,可以交给autoprefixer去做。(这句话啥意思没懂,以后看看说的啥)

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

四、伪元素的使用

(1) 清除浮动

.clear:after {
content: '';
display: block;
clear: both;
}

(2) 画分割线

<style>
* {
  padding: 0;
  margin: 0;
}
.spliter::before, .spliter::after {
  content: '';
  display: inline-block;
  border-top: 1px solid black;
  width: 200px;
  margin: 5px;
}
  </style>
  <p>分割线</p>

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

css3 css

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

2040

10

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.01

3166

5

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

4196

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

306

9

DOM是什么意思
DOM是什么意思

dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

2024.08.14

6541

7

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.24

874

4

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

20

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

20

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 16.6万人学习

HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 11万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 19.4万人学习