CSS伪类伪元素?:hover,::before,::after使用(举例)

文章目录

    • 什么是CSS伪类?什么是伪元素?
    • 怎么用伪元素?可以做些什么?
      • ::before,在标签选择器之前添加内容,::after正好与之相反
      • ::before,在类选择器之前添加内容(:制作一个悬浮提示窗
    • 参考链接

        作为一名假前端,css在我眼里是一个非常神奇的东西。我只会想页面上的内容需要以什么方式展示,但是不知道怎么用css去实现,或者说不知道css里面有哪些技术可以实现。最近发现css中伪类的一个用法,特意查询了一下,感觉很有趣,记录一下。
        请允许我先暂且叫它们 css伪类, 后来我通过查阅相关的资料发现 css伪类css伪元素是两种不同的东西。
        在css3中,按照规范使用 单冒号(:) 表示伪类,使用 双冒号(::) 表示伪元素:

  • 常见的伪类
    • :hover:表示鼠标移动到某个元素上会发生什么。
      • :hover - CSS:层叠样式表 | MDN
    • :visited:表示鼠标激活某个链接后会发生什么。通常用在a标签area标签
      • :visited - CSS:层叠样式表 | MDN
    • :checked:表示鼠标选中某些元素后会发生什么。如单选、复选、下拉等
      • :checked - CSS:层叠样式表 | MDN
    • ……
  • 常见的伪元素
    • ::before:在某个类或伪类之前添加内容
      • ::after (:after) - CSS:层叠样式表 | MDN
    • ::after:在某个类或伪类之后添加内容
      • ::before (:before) - CSS:层叠样式表 | MDN
    • ::marker:在某个类或伪类之前添加标志
      • ::marker - CSS:层叠样式表 | MDN
    • ::placeholder:如表示input输入框提示文本的样式
      • ::placeholder - CSS:层叠样式表 | MDN
    • ……

这里不对伪类做太多的讨论,重点看一下伪元素是怎么用的。

什么是CSS伪类?什么是伪元素?

伪类 - CSS:层叠样式表 | MDN
伪元素 - CSS:层叠样式表 | MDN

怎么用伪元素?可以做些什么?

::before,在标签选择器之前添加内容,::after正好与之相反

GIF 2023-11-30 10-57-24.gif

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>伪元素测试</title><link rel="stylesheet" href=""><style type="text/css">/*	给所有span元素添加,手型	*/span {cursor: pointer;}/*	给所有span元素添加,鼠标悬浮上去之后,在当前span元素前面添加竖线	*/span:hover::before {content: "";font-size: 20px;border-right: solid darkred;}</style>
</head>
<body style="text-align: center;"><span class="menu">目录1</span><br><span class="menu">目录2</span><br><span class="menu">目录3</span><br><span class="menu">目录4</span><br>
</body>
</html>

::before,在类选择器之前添加内容(:制作一个悬浮提示窗

GIF 2023-11-30 11-38-09.gif

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>伪元素测试</title><link rel="stylesheet" href=""><style type="text/css">.menu {cursor: pointer;display: block;line-height: 15px;margin: 20px;}.menu:hover::before {content: "";font-size: 20px;border-right: solid darkred;}/* 定义提示窗口的样式 */.tips {display: none;
/*			display: inline-block;*/position: absolute;min-width: 155px;max-height: 55px;width: max-content;background: rgba(0, 0, 0, 0.8);padding: 10px 12px;border-radius: 4px;color: #fff;left: 30px;top: -10px;}/* 定义问号样式 */.tips-question {position: absolute;display: inline-block;background-color: #080808;width: 15px;height: 15px;line-height: 15px;text-align: center;border-radius: 10px;cursor: pointer;user-select: none;color: white;font-size: 11px;font-weight: bold;width: -moz-max-content;}/* 问号,鼠标悬浮上之后展开提示窗口 */.tips-question:hover .tips {display: inline-block;}/* 展开提示窗口之后,在窗口左边加一个小三角形 */.tips-question .tips::before {content: '';border: solid 12px #00000000;border-right-color: rgba(0, 0, 0, 0.8);position: absolute;top: 7px;left: -20px;}</style>
</head>
<body style="text-align: center;"><ul><li class="menu">目录1<div class="tips-question"><p style="display: inline;">?</p><div class="tips">悬浮展示1</div></div></li><li class="menu">目录2<div class="tips-question"><p style="display: inline;">?</p><div class="tips">悬浮展示2</div></div></li><li class="menu">目录3<div class="tips-question"><p style="display: inline;">?</p><div class="tips">悬浮展示3</div></div></li><li class="menu">目录4<div class="tips-question"><p style="display: inline;">?</p><div class="tips">悬浮展示4</div></div></li></ul>
</body>
</html>

参考链接

css中::before ::after的用法_css中before和after的用法-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/233447.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

展开运算符(...)

假如我们有一个数组&#xff1a; const arr [7,8,9];● 我们如果想要数组中的元素&#xff0c;我们必须一个一个手动的去获取&#xff0c;如下&#xff1a; const arr [7,8,9]; const badNewArr [5, 6, arr[0], arr[1],arr[2]]; console.log(badNewArr);● 但是通过展开运…

如何快速上手一个自己不太熟悉的新项目?

一.熟悉新项目的步骤 第一步:了解业务 技术本身就是为了业务而服务&#xff0c;只有首先搞清楚了业务之后才真正算是步入了这个项目的大门。因此&#xff0c;要先搞清新项目&#xff1a; 是做什么的&#xff1f; 主要面向什么人群使用&#xff1f;主要提供了哪些功能&#x…

基于Springboot的房产销售系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的房产销售系统(有报告)。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Sp…

uniapp2023年微信小程序头像+昵称分别获取

1、DOM <view class"m-user"><view class"user-info"><!--头像 GO--><button class"avatar avatar-wrapper" open-type"chooseAvatar" chooseavatar"onChooseAvatar"slot"right"><im…

Java实现简单的王者荣耀游戏

一、创建新项目 首先创建一个新的项目&#xff0c;并命名为wangzherongyao。 其次在飞翔的鸟项目下创建一个名为img的文件夹用来存放游戏相关图片。详细如下图&#xff1a; 二、游戏代码 1、创建怪物类 1.bear&#xff1a; package beast;import wangzherogyao.GameFrame;…

Moonbeam生态项目分析 — — 去中心化交易所Beamswap

流动性激励计划Moonbeam Ignite是帮助用户轻松愉快体验Moonbeam生态的趣味活动。在Moonbeam跨链连接的推动下&#xff0c;DeFi的各种可能性在这里爆发。DeFi或许不热门&#xff0c;但总有机会捡漏&#xff0c;了解Monbeam生态项目&#xff0c;我们邀请Moonbeam大使分享他们的研…

LeetCode(37)矩阵置零【矩阵】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 73. 矩阵置零 1.题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]…

视频监控平台EasyCVR多场景应用,AI视频分析技术助力行业升级转型

传统的视频监控系统建设&#xff0c;经常存在各方面的因素制约&#xff0c;造成管理机制不健全、统筹规划不到位、联网共享不规范&#xff0c;形成“信息孤岛”、“数据烟囱”。在监控系统的建设中缺乏统一规划&#xff0c;标准不统一、视频图像信息利用率低等问题日益突出。随…

arcgis导出某个属性的栅格

选中栅格特定属性想要导出时&#xff0c;无法选中“所选图形” 【方法】spatial analyst 工具——提取分析——按属性提取

Python数据分析从入门到进阶:模型评估和选择(含代码)

引言 之前我们介绍了机器学习的一些基础性工作&#xff0c;介绍了如何对数据进行预处理&#xff0c;接下来我们可以根据这些数据以及我们的研究目标建立模型。那么如何选择合适的模型呢&#xff1f;首先需要对这些模型的效果进行评估。本文介绍如何使用sklearn代码进行模型评估…

九要素微气象仪-气象百科

随着科技的发展&#xff0c;人们对天气的预测和掌控能力越来越强。在这个领域&#xff0c;九要素微气象仪以其精准、快速、便携的特点&#xff0c;成为了气象预测的佼佼者。这款仪器不仅可以预测风向、风速、温度、湿度、气压等九大要素&#xff0c;还可以实时监测环境温湿度、…

四个方法,设置excel文件只读模式

由于excel文件经常用于数据文件&#xff0c;数据就需要特别保护&#xff0c;大家可能需要将文件设置为只读模式来保护数据不被修改&#xff0c;Excel文件想要设置为只读的方法有很多&#xff0c;今天分享四种方法给大家&#xff1a; 方法一&#xff1a;文件属性 右键点击文件…