如何通过css :hover与::before实现悬停装饰效果

答案:通过CSS的:hover与::before可实现下划线伸缩等悬停效果,核心是用::before创建隐藏装饰元素,结合定位与transition实现平滑动画,如宽度展开、图标浮现,需注意父元素relative定位及content属性设置。

如何通过css :hover与::before实现悬停装饰效果

通过 CSS 的 :hover::before,可以实现丰富且平滑的悬停装饰效果,比如下划线伸缩、图标浮现、背景延伸等。核心思路是:利用 ::before 创建一个隐藏的装饰元素,在鼠标悬停时通过 :hover 控制其显示或动画。

1. 基础结构:设置 ::before 元素

::before伪元素,用于在元素内容前插入装饰性内容(不需 HTML 改动)。通常将其定位为绝对定位,并默认隐藏或置于不可见状态。

示例代码:

.link {  position: relative;  text-decoration: none;  color: #000;}.link::before {  content: "";  position: absolute;  left: 0;  bottom: -2px;  width: 0;  height: 2px;  background-color: #007acc;  transition: width 0.3s ease;}

2. 悬停时显示装饰:使用 :hover 控制 ::before

当用户将鼠标悬停在元素上时,通过 :hover 修改 ::before 的样式,例如展开宽度、改变颜色或位移。

继续上面的例子:

.link:hover::before {  width: 100%;}

此时,悬停时下划线会从左向右伸展,形成动态装饰效果。

立即学习“前端免费学习笔记(深入)”;

稿定抠图 稿定抠图

AI自动消除图片背景

稿定抠图 76 查看详情 稿定抠图

3. 更多实用效果变体

你可以通过调整 ::before 的属性实现多种视觉变化:

从中间向两边展开:设置 left: 50%transform: translateX(-50%),悬停时 width: 100% 背景色块滑入:用 heighttop 控制垂直方向滑动 添加图标或符号:在 content: "→" 中插入字符,初始 opacity: 0,悬停变为 1 边框动画:创建四个边框分别用 ::before 和 ::after 模拟,逐个动画出现

4. 添加过渡动画让效果更自然

关键在于使用 transition 属性平滑地改变 ::before 的样式。建议指定具体属性而非 all,避免性能问题。

推荐写法:

.link::before {  transition: width 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);}

cubic-bezier 可以让动画更有弹性,提升视觉质感。

基本上就这些。合理组合 :hover 与 ::before,既能减少 HTML 冗余,又能实现轻量级、高性能的交互装饰效果。不复杂但容易忽略细节,比如定位上下文(父元素设 position: relative)和 content 必须存在。

以上就是如何通过css :hover与::before实现悬停装饰效果的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1018602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 01:11:51
下一篇 2025年12月2日 01:12:13

相关推荐

  • 使用 create-next-breeze 简化您的 Nextjs 开发

    开始一个新项目时,效率是关键。今天,我将介绍一个强大的工具,它将彻底改变您启动 next.js 项目的方式: npx create-next-breeze 什么是create-next-breeze? create-next-breeze 是 next.js 应用程序的增强型项目初始值设定项。它建立…

    2025年12月19日
    000
  • 手册和规范:掌握 JavaScript 指南

    欢迎回到我们的 JavaScript 世界之旅!在这篇博文中,我们将深入探讨有助于您理解和掌握 JavaScript 的基本手册和规范。无论您是初学者还是经验丰富的开发人员,这些资源都将作为您学习和故障排除的首选参考。让我们探索官方 ECMAScript 规范、MDN Web 文档和其他有用的资源。…

    好文分享 2025年12月19日
    000
  • 如何使用 HTML 和 CSS 使图像在悬停时旋转

    图像上的悬停旋转效果可以使您的内容更具吸引力和互动性。在本教程中,我们将引导您了解如何仅使用 html 和 css 创建简单但引人注目的悬停旋转效果。 如何创造效果 html: 首先,添加以下 html 代码: @@##@@ 您可以添加任何您喜欢的图像。 此代码设置了一个包含在具有悬停旋转类的标签中…

    2025年12月19日
    000
  • 如何使用 Tailwind CSS 和 JavaScript 创建基本的音乐可视化工具

    今天,我们将穿上舞鞋,使用 Tailwind CSS 和 JavaScript 构建一个基本的音乐可视化工具。 什么是音乐可视化工具?音乐可视化工具将音频信号转换为动态视觉效果。它实时分析音乐并显示反映音乐节拍、节奏和频率的动画或图形。从简单的波形到复杂的模式,可视化工具通过提供视觉组件来增强音频体…

    2025年12月19日
    000
  • + React 现代商店的电子商务组件

    想要使用 react 和 tailwind css 构建一个电子商务网站?您来对地方了! tailgrids 提供了一套全面的react 电子商务组件,旨在简化您的开发流程并增强您的在线商店。 TailGrids 拥有超过 100 多个电子商务 UI 组件、元素和页面,是您创建具有视觉吸引力和功能强…

    2025年12月19日
    000
  • Puck vPermissions

    puck 是由 measured 构建的 react 开源可视化编辑器 – 是 builder.io、wordpress 和其他所见即所得工具的自托管替代品。 我们正在庆祝 github 上获得 5,000 颗星!感谢我们美好的社区! puck v0.16 是一个重大版本,引入了头条权限…

    2025年12月19日
    000
  • 我参加了全栈训练营课程

    我做了什么! 我最近浏览了一个新手训练营的两小时视频,其中我构建并部署了一个全栈应用程序。 我只花了六个小时…… 这是我的一些收获。 内联 css 的正确模式和约定很困难。未考虑重构。使用 node server 来推送 react build 很尴尬。没有单元测试。部署是一…

    2025年12月19日 好文分享
    000
  • 从零到英雄:开始我的前端开发之旅

    这一切都始于 2017 年,当我第一次开始学习如何编码时,我在 Admas 报名参加了为期 3 个月的学习课程,起初我很兴奋参加课程做作业,但我并没有真正深入执行某些操作在我被阿比亚州立大学乌图鲁分校录取学习生物化学之前的练习和练习,我必须更加专注于我的学习,被一个非常严肃的部门录取。 所以我在 2…

    2025年12月19日
    000
  • 在 Laravel 项目中使用 SCSS 和 TailwindCSS 代码示例

    在编码领域,人们经常意识到什么有效,什么无效,以及尽管是新事物,但什么可以带来明确的改变。在这个小教程中,我将向您展示将 scss tailwindcss 一起用于无数 web 应用程序的最简单的事情。这个强大的组合可以显着增强您的 web 开发工作流程并创建更易于维护的样式表。 所以在开始之前先做…

    2025年12月19日
    000
  • 如何使用 Tailwind CSS 和 JavaScript 创建基本看板

    今天是星期一,让我们深入构建一个简单的看板!我们将使用 Tailwind CSS 和 JavaScript 创建一个包含三列的列:待办事项、进行中和完成。 什么是看板?看板是用于管理工作流程中的任务的可视化工具。它将任务组织成列,每个列代表流程的不同阶段。例如,基本的看板可以包括“待办事项”、“进行…

    2025年12月19日
    000
  • 优化 Nextjs 应用性能的经过验证的技巧 ⚡️

    优化 web 应用程序的性能对于提供快速、流畅的用户体验至关重要。 使用 next.js 这个强大的 react 框架,您可以利用许多内置功能来提高应用程序的速度和效率。 以下十个关键策略可帮助您的 next.js 应用获得最佳性能: 1. 仅加载您需要的 javascript 和 css 为了避免…

    2025年12月19日
    000
  • 在深入 Web 开发之前您必须了解的事项

    1. HTML、CSS、JavaScript——三位一体 没有砖头就建不了房子,不掌握 HTML、CSS 和 JavaScript 就无法建立网站。 HTML 是您的结构,CSS 使其看起来令人惊叹,而 JavaScript 通过交互性使其栩栩如生。如果您认真对待网络开发,请从这里开始。没有捷径! …

    2025年12月19日
    000
  • 你能解决这个问题吗?

    假设我们有两个 div,一个内部 div 和另一个外部 div。 内部 div 负责缩放和平移(使用 css 变换、平移和缩放完成)。 现在可以通过拖放将新的 div 添加到内部 div 中。放置事件被outerdiv 接受 现在,在放置事件期间,您可以获得 clientx、clienty 位置,现…

    2025年12月19日
    000
  • Web Development Job in 4

    简介 网络开发领域持续快速发展,为拥有适当技能和知识的个人提供了令人兴奋的机会。如果您想进入这个充满活力的行业或提升自己的职业生涯,这里有一些重要策略可以帮助您在 2024 年找到梦想的工作: 1. 掌握基本技能 编程语言:熟练掌握 JavaScript、Python、Ruby 或 PHP 等语言至…

    2025年12月19日
    000
  • 学习如何:useEFFECT 和 useSTATE,一个 REACT 应用程序

    我一直在开发一个名为“Heat”的网络应用程序,该应用程序的唯一目的是帮助我学习和应用 JavaScript 并改进我的 CSS,还有很多后端。我们的计划是创建一个具有视觉吸引力的网络应用程序,并具有一些有趣的功能。 在这个过程中我学到了什么: 前端是使用react js构建的,我选择react只是…

    2025年12月19日
    000
  • 太阳能系统挑战

    这是前端挑战 v24.09.04 的提交,Glam Up My Markup: Space 我建造了什么 我使用 CSS 网格创建了一个登陆页面,展示了每个部分中的所有项目。 演示 斯蒂芬妮-丹尼希.github.io 旅行 这是我完成的第一个这样的挑战。我想测试我的技能,看看在没有设计文件作为指导…

    2025年12月19日
    000
  • 编写更好的 React 代码:干净、高效的实践指南

    随着 react 的不断发展,开发人员必须不断更新最佳实践,以增强代码的可读性、可维护性和性能。本指南概述了 2024 年编写更清洁、更高效的 react 应用程序时要遵循的关键实践,包括 react 19 中引入的最新更改。 1.使用功能组件和钩子 带有钩子的功能组件是构建 react 应用程序的…

    2025年12月19日
    000
  • 使用 HTML、CSS 和 JavaScript 创建您自己的病毒扫描程序

    在当今的数字时代,病毒扫描是保护我们的计算机和设备免受恶意软件侵害的重要工具。但您有没有想过病毒扫描程序是如何工作的?在这篇文章中,我们将探讨如何使用 HTML、CSS 和 JavaScript 创建简单的病毒扫描程序。代码:我们将使用以下代码来创建病毒扫描程序:演示代码工作原理:我们的病毒扫描程序…

    2025年12月19日
    000
  • CSS 的演变:从基础到现代魔法

    css(即层叠样式表)自 20 世纪 90 年代末首次出现以来,一直是网页设计领域的无名英雄。将其视为网络世界的神奇衣橱——将简单、无聊的 html 转变为视觉上令人惊叹的交互式仙境。在本文中,我们将深入探讨 css 的迷人演变,从它卑微的开始到目前作为每个 web 开发人员工具包中的终极向导的角色…

    2025年12月19日
    000
  • 如何使用 Tailwind CSS 和 Javascript 创建组合框

    今天,我们将使用 Tailwind CSS 和 JavaScript 创建一个基本的组合框。这是稍后构建更高级组合框的简单起点。 什么是组合框? 组合框是一个 UI 元素,可让用户快速选择命令或选项。它看起来像一个搜索字段,激活后会显示选项列表,允许用户有效地导航和选择选项。 阅读文章,观看直播并获…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信