有趣的css - 文字下划线条动画按钮

news2024/11/29 2:50:11

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用 css 实现文字下划线条动画按钮。

《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。


目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

知识点:
①用 :after 创建伪元素
②定位 position 属性的使用
③ transition 过渡属性搭配 :hover 伪类的灵活使用

思路:使用 :after 创建伪元素线条动画载体,然后使用 :hover 伪类加 transition 过渡属性来实现线条从左往右过渡视觉效果。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<a href="javascript:;" class="btn44">Design</a>

a 标签文字按钮主体。

css 部分代码

.btn44{
  font-size: 14px;
  font-weight: 700;
  height: 32px;
  line-height: 32px;
  color: #333333;
  text-decoration: none;
  cursor: pointer;
  position: relative;
}
.btn44:after{
  content: '';
  width: 0;
  height: 2px;
  background-color: #333333;
  position: absolute;
  right: 0;
  bottom: 0px;
  transition: width 0.6s;
}
.btn44:hover:after{
  width: 100%;
  left: 0;
}

1、页面中 a 标签作为文字按钮主体,这里注意要设置 a 标签定位属性 position: relative,然后使用 :after 创建线条伪元素,使用 position 定位到文字按钮下方,当作文字按钮的下划线。

2、给伪元素增加 transiton 过渡属性以及相关参数。

3、使用伪类 :hover 来获取鼠标悬浮状态,当鼠标悬浮在文字按钮上方时,线条元素的宽度会从左往右变成 100%,当鼠标从文字按钮上方移走时,线条元素的宽度就会从左往右变成 0。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="style.css">
        <title>文字下划线条动画按钮</title>
    </head>
    <body>
        <div class="app">
            <a href="javascript:;" class="btn44">Design</a>
        </div>
    </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn44{
  font-size: 14px;
  font-weight: 700;
  height: 32px;
  line-height: 32px;
  color: #333333;
  text-decoration: none;
  cursor: pointer;
  position: relative;
}
.btn44:after{
  content: '';
  width: 0;
  height: 2px;
  background-color: #333333;
  position: absolute;
  right: 0;
  bottom: 0px;
  transition: width 0.6s;
}
.btn44:hover:after{
  width: 100%;
  left: 0;
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读


CSS 是一种很酷很有趣的计算机语言,在这里跟大家分享一些 CSS 实例 Demo,为学习者获取灵感和思路提供一点帮助,希望你们喜欢。

我是 Just,这里是「设计师工作日常」,求点赞求关注!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【WEEK5】 【DAY5】DML语言【中文版】

2024.3.29 Friday 目录 3.DML语言3.1.外键&#xff08;了解&#xff09;3.1.1.概念3.1.2.作用3.1.3.添加&#xff08;书写&#xff09;外键的几种方法3.1.3.1.创建表时直接在主动引用的表里写&#xff08;被引用的表的被引用的部分&#xff09;3.1.3.2.先创建表后修改表以添加…

近年来,常见5大软件开发项目管理工具

时代进步&#xff0c;技术进步&#xff0c;汇总下近几年5大常用的软件开发项目管理工具。 1、微软项目管理软件 Microsoft Project&#xff08;或MSP&#xff09;是由微软开发销售的项目管理软件程序。软件设计目的在于协助项目经理制定发展计划、为任务分配资源、跟踪进度、管…

目标检测——门牌号数据集

一、重要性及意义 识别自然场景图像中的数字和号码具有极高的重要性和意义&#xff0c;这主要体现在以下几个方面&#xff1a; 实际应用广泛性&#xff1a;自然场景中的数字和号码识别技术在日常生活中有着广泛的应用。例如&#xff0c;在自动驾驶车辆中&#xff0c;准确识别路…

【网站项目】面向社区健康服务的医疗平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【动手学深度学习】深入浅出深度学习之利用神经网络识别螺旋状数据集

目录 &#x1f31e;一、实验目的 &#x1f31e;二、实验准备 &#x1f31e;三、实验内容 &#x1f33c;1. 生成螺旋状数据集 &#x1f33c;2. 打印数据集 &#x1f33c;3. 编程实现 &#x1f33b;仿射层-Affine类 &#x1f33b;传播层-Sigmoid类 &#x1f33b;损失函数…

SSH连接SFTP传输:如何使用libssh库在windows环境下进行(文件、文件夹)传输到远端服务器

配置环境cmake编译libssh如何使用生成的dll与lib文件配置lib 方法一配置lib 方法二配置dll方法一 将dll配置进入环境变量配置dll方法二 在编译过后将dll直接与可执行文件.exe文件放在同一目录下传输文件、文件夹代码&#xff08;适配windows&#xff09; 由于windows上的编译器…

C语言 | Leetcode C语言题解之第2题两数相加

题目&#xff1a; 题解&#xff1a; struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {struct ListNode *head NULL, *tail NULL;int carry 0;while (l1 || l2) {int n1 l1 ? l1->val : 0;int n2 l2 ? l2->val : 0;int sum n1 n2 …

使用 Spring Email 和 Thymeleaf 技术,向新注册用户发送激活邮件(一)

这篇内容对应"2.1 发送邮件"小节 对应视频&#xff1a;9-发送邮件 视频链接 邮箱设置 需要去邮箱对应的官方客户端软件或网站开启IMAP/SMTP服务或POP3/SMTP服务器 如果不开启&#xff0c;就无法使用第三方用户代理&#xff0c;只能走第官方的电子邮件客户端软件或…

GT收发器第一篇_总体结构介绍

文章目录 前言GT收发器介绍 前言 之前写过一篇简单介绍GT的文章https://blog.csdn.net/m0_56222647/article/details/136730026&#xff0c;可以先通过这篇文章对整体进行简单了解一下。 GT收发器介绍 参考xilinx手册ug476 对于7系列的FPGA&#xff0c;共有3个系列&#xf…

3D检测:从pointnet,voxelnet,pointpillar到centerpoint

记录centerpoint学习笔记。目前被引用1275次&#xff0c;非常高。 地址&#xff1a;Center-Based 3D Object Detection and Tracking (thecvf.com) GitHub - tianweiy/CenterPoint CenterPoint&#xff1a;三维点云目标检测算法梳理及最新进展&#xff08;CVPR2021&#xff…

【Java初阶(七)】接口

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; 目录 1.前言2.接口2.1语法规则2.2接口使用2.3接口特性2.4实现多个接口2.5接口使用实例2.6Clonable接口和深拷贝 3.Object类3.1对象比较equals方法3.2hashcod…

Vivado使用(1)——综合的约束与策略

目录 一、概述 二、约束与策略 2.1 约束 2.1.1 物理约束 2.1.2 时序约束 2.2 综合策略 2.2.1 flatten_hierarchy 2.2.2 gated_clock_conversion 2.2.3 bufg 2.2.4 fanout_limit 2.2.5 directive 2.2.6 retiming 2.2.7 fsm_extraction 2.2.8 keep_equivalent_regi…

Uibot6.0 (RPA财务机器人师资培训第6天 )发票验真机器人案例实战

类似于小北的这篇博客&#xff1a;Uibot (RPA设计软件&#xff09;Mage AI智能识别&#xff08;发票识别&#xff09;———课前材料五_uibot 添加mageai-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135591297?spm1001.2014.3001.5501训练网站&#xff1a;泓江…

嵌入式科普(14)指针---这些年嵌入式工程师也不容易理解的词语

目录 一、指针&#xff08;Pointer&#xff09;&#xff1a; 1.1 动态内存管理&#xff1a; 1.2 数组和字符串操作&#xff1a; 1.3 函数参数传递&#xff1a; 1.4 数据结构实现&#xff08;链表&#xff09;&#xff1a; 1.5 实现回调函数&#xff1a; 1.6 提高性能&am…

Day63-LVS四层负载均衡及结合Nginx7层负载均衡实践

Day63-LVS四层负载均衡及结合Nginx7层负载均衡实践 1. LVS&#xff08;Linux Virtual Server&#xff09;介绍2. IPVS&#xff08;LVS&#xff09;发展史3. IPVS软件工作层次图4. LVS技术点小结5. LVS的4模式原理讲解5.1 NAT(Network AddressTranslation)&#xff0c;中文网络地…

纽扣电池CR1632没有电解决方案

使用环境 在使用小米的自拍杆时&#xff0c;发现纽扣电池没有电量了逛了下超市&#xff0c;结果发现都没有卖这个型号的电池&#xff0c;但是下午又要拍照&#xff0c;于是想起了应急的充电方法。声明一下&#xff0c;这个内置电池型号是CR1632&#xff0c;然而市面上&#xff…

vue基础教程(5)——十分钟吃透vue路由router

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、路由概念二、路由使用三、创建路由对应的组件四、给整个项目一个入口总结 前言 前面的文章运行成功后&#xff0c;页面显示如下&#xff1a; 在这个页面中&#xff0c;点击Home和About都会切换右面的页面内容&#…

什么是Redis数据一致性?如何解决?

在系统中缓存最常用的策略是&#xff1a;服务端需要同时维护DB和cache&#xff0c;并且是以DB的结果为准–Cache-Aside Pattern&#xff08;缓存分离模式、旁路缓存&#xff09; 读数据 单纯的读数据是不会产生数据不一致&#xff0c;只有并发下读和写才会存在数据不一致。 写…

插入排序---算法

1、算法概念 插入排序&#xff1a;它的工作原理是通过构建有序排序&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置插入。 2、算法步骤 将第一待排序序列第一个元素看作一个有序序列&#xff0c;把第二个元素到最后一个元素当成是…

3万字80道Java基础经典面试题总结(2024修订版)

大家好&#xff0c;我是哪吒。 本系列是《10万字208道Java经典面试题总结(附答案)》的2024修订版。 目录 1、说说跨平台性2、Java是如何实现跨平台性的&#xff1f;3、JDK 和 JRE 有什么区别&#xff1f;4、为何要配置Java环境变量&#xff1f;5、Java都有哪些特性&#xff1f…