有趣的CSS - 按钮文字上下滑动

news2024/11/19 15:14:40

目录

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

整体效果

这个按钮效果主要使用 :hover 伪选择器以及 transition 过渡属性来实现两个子元素上下过渡的效果。

此效果可以在主入口按钮、详情或者更多等按钮处使用,增加一些鼠标的交互效果。


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

核心代码

html 代码

<button>
  <span class="defalut">鼠标放上来</span>
  <span class="hover">点我吧</span>
</button>

button 标签主体,包裹两个子元素 span ,分别为 .defalut.hover

css 部分代码

*{
  transition: .5s;
}
button{
  width: 110px;
  height: 42px;
  color: #ffffff;
  background-color: #457356;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s linear;
  position: relative;
  overflow: hidden;
}
.defalut,.hover{
  width: 100%;
  height: 100%;
  line-height: 42px;
  letter-spacing: 2px;
  display: block;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}
.hover{
  position: absolute;
  left: 0;
  top: 100%;
}
button:hover .defalut{
  transform: translateY(-100%);
}
button:hover .hover{
  top: 0;
}

css 部分主要通过 :hover 伪选择器来分别设置两个 span 子元素的样式,然后配合 transform 以及定位来实现两个 span 的上下移动。

注意:全局定义了 transition: .5s


完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>按钮文字上下滑动</title>
  </head>
  <body>
    <div class="app">
      <button>
        <span class="defalut">鼠标放上来</span>
        <span class="hover">点我吧</span>
      </button>
    </div>
  </body>
</html>

css 样式

/** style.css **/
*{
  margin: 0;
  padding: 0;
  list-style: none;
  transition: .5s;
}
html,body{
  background-color: #efefef;
  color: #fff;
  font-size: 14px;
}
.app{
  width: 100%;
  height: 100vh;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
button{
  width: 110px;
  height: 42px;
  color: #ffffff;
  background-color: #457356;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s linear;
  position: relative;
  overflow: hidden;
}
.defalut,.hover{
  width: 100%;
  height: 100%;
  line-height: 42px;
  letter-spacing: 2px;
  display: block;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}
.hover{
  position: absolute;
  left: 0;
  top: 100%;
}
button:hover .defalut{
  transform: translateY(-100%);
}
button:hover .hover{
  top: 0;
}

页面渲染效果

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


[1] 原文阅读

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

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

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

相关文章

Express框架介绍—node.js

Express—Node.js 官网传送门(opens new window) 基于 Node.js 平台&#xff0c;快速、开放、极简的 Web 开发框架 Express 是用于快速创建服务器的第三方模块。 Express 初体验 基本使用 安装 Express&#xff1a; npm install express创建服务器&#xff0c;监听客户端请…

前端实现搜索框筛选

效果图 页面解析 是一个input输入框和一个button按钮组成输入框查询 内容是一个折叠面板 html代码 <div class"left-content-box"><div class"colum-search"><el-input v-model"columKey" clearable placeholder"请输入关…

第二届 N1CTF Junior Crypto-junior RSA WP

题目&#xff1a; from Crypto.Util.number import * from secret import flagm bytes_to_long(flag)def gen(bits):while True:a getPrime(bits)b getPrime(bits)c getPrime(bits)p (a << (2*bits)) (b << bits) cq (c << (2*bits)) (a << …

Day4.

单链表 #include <head.h>typedef struct List{int value;struct List *pointe; }*list; list create_space() {list s(struct List *)malloc(sizeof(struct List)); //向堆区申请空间s->pointe NULL;//初始化s->value 0;return s; } list inserhead_list(lis…

问题排查利器 - 分布式 trace

在分布式系统开发中&#xff0c;系统间的调用往往会横跨多个应用之间的接口。负责的调用链路也导致了&#xff0c;当线上环境出现问题时&#xff0c;例如请求失败、延迟增加或错误发生&#xff0c;我们无法第一时间确定是哪个环节出了问题&#xff0c;这给故障排查和修复带来了…

Spring Data Envers 数据审计实战

随着各行各业信息化发展&#xff0c;决策者们越来越意识到数据版本追踪的重要性&#xff0c;尤其是上市公司&#xff0c;数据对于他们尤为重要。考虑到研发成本&#xff0c;对重要表单数据支持页面级的修改历史查看、对所有业务数据支持DB级的版本查看是一个不错的选择。 对于…

基于OpenCV灰度图像转GCode的斜向扫描实现

基于OpenCV灰度图像转GCode的斜向扫描实现基于OpenCV灰度图像转GCode的斜向扫描实现 引言激光雕刻简介OpenCV简介实现步骤 1.导入必要的库2. 读取灰度图像3. 图像预处理4. 生成GCode5. 保存生成的GCode6. 灰度图像斜向扫描代码示例 总结 系列文章 ⭐深入理解G0和G1指令&…

通过遵循最佳做法来提高 EDA 和 HPC 应用程序的 Azure NetApp 文件性能

介绍 Azure NetApp 文件是一项托管存储解决方案&#xff0c;适用于各种方案&#xff0c;包括高性能计算 (HPC) 基础结构。 低延迟和每秒高 I/O 操作数 (IOPS) 对于大规模企业而言是一种很好的组合。 假设你就职于一家半导体公司。 你的任务是设计公司的集成电路芯片&#xff…

问题:塑瓷后的牙冠要比完成的牙冠大() #学习方法#其他

问题&#xff1a;塑瓷后的牙冠要比完成的牙冠大&#xff08;&#xff09; A.10% B.10%-15% C.15%-20% D.20%-30% E.50% 参考答案如图所示

mysql8通过binlog恢复数据

参考资料: 通过binlog恢复误update的数据(一)_binlog 恢复update-CSDN博客 记录一次工作中的误删除&#xff0c;使用binlog恢复数据的问题。 1&#xff1a;找到mysql8的binlog文件。 2&#xff1a;把binlog文件转换为初始sql文件 mysqlbinlog -vv --base64-outputdecode-row…

【CSS】什么是BFC?BFC有什么作用?

【CSS】什么是BFC&#xff1f;BFC有什么作用&#xff1f; 一、BFC概念二、触发BFC三、BFC特性即应用场景1、解决margin塌陷的问题2、避免外边距margin重叠&#xff08;margin合并&#xff09;3、清除浮动4、阻止元素被浮动元素覆盖 一、BFC概念 BFC(block formatting context)…

【已解决】pt文件转onnx后再转rknn时得到推理图片出现大量锚框变花屏

前言 环境介绍&#xff1a; 1.编译环境 Ubuntu 18.04.5 LTS 2.RKNN版本 py3.8-rknn2-1.4.0 3.单板 迅为itop-3568开发板 一、现象 采用yolov5训练并将pt转换为onnx&#xff0c;再将onnx采用py3.8-rknn2-1.4.0推理转换为rknn&#xff0c;rknn模型能正常转换&#xff0c;…

Mac OS中创建适合网络备份的加密镜像文件:详细步骤与参数选择

这篇文章提供了在Mac OS中创建适合网络备份的加密镜像文件的详细步骤&#xff0c;同时探讨了在选择相关参数时的关键考虑因素&#xff0c;以确保用户能够安全、高效地存储和保护重要数据。 创建步骤 在Mac OS Monterey中&#xff0c;你可以使用“磁盘工具”&#xff08;Disk …

Django通过Json配置文件分配多个定时任务

def load_config():with open("rule.json", rb)as f:config json.load(f)return configdef job(task_name, config, time_interval):# ... 通过task_name判断进行操作if task_name get_data_times:passdef main():config load_config()for task_name, task_value…

代码随想录算法训练营第三十六天|背包问题

01背包问题 二维 代码随想录 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;| 关于背包问题&#xff0c;你不清楚的地方&#xff0c;这里都讲了&#xff01;| 动态规划经典问题 | 数据结构与算法_哔哩哔哩_bilibili public class BagProblem {public static void main(…

LoRA:语言模型微调的计算资源优化策略

编者按&#xff1a;随着数据量和计算能力的增加&#xff0c;大模型的参数量也在不断增加&#xff0c;同时进行大模型微调的成本也变得越来越高。全参数微调需要大量的计算资源和时间&#xff0c;且在进行切换下游任务时代价高昂。 本文作者介绍了一种新方法 LoRA&#xff0c;可…

C++多态_C++回顾

多态的概念 通俗的说多态就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的概念。 什么是多态 静态的多态 静态的多态即函数重载&#xff0c;编译时是参数匹配和函数名修饰规则。 动态的多态 运行时实现&#xff0c;跟指…

【Java网络编程05】网络原理进阶(三)

1. HTTP协议概述 HTTP协议&#xff1a;又被称为"超文本传输协议"&#xff0c;是一种使用非常广泛的应用层协议&#xff0c;我们之前在文件章节介绍过文本文件与二进制文件的区别&#xff0c;文本可以看做字符串&#xff08;能在utf8/gbk等编码表中查找到合法字符&am…

Unity类银河恶魔城学习记录1-14 AttackDirection源代码 P41

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili PlayerPrimaryAttackState.cs using System.Collections; using System.Co…

测试开发体系

软件测试 通过手工或者工具对 “被测对象”进行测试验证实际结果与预期结果之间是否存在差异 软件测试作用 通过测试工作可以发现并修复软件当中存在的缺陷&#xff0c;从而提高用户对产品的使用信心测试可以降低同类型产品开发遇到问题的风险 软件缺陷 软件缺陷被测试工程…