有趣的css - 双开门按钮

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个双开门的按钮,交互效果比较强,但是实现很简单,快学起来吧。

最新文章通过公众号「设计师工作日常」发布。


目录

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

整体效果

💎知识点:
1️⃣ :before 以及 :after 伪元素
2️⃣ transform 以及 transition 属性
3️⃣ flex 布局以及 position 定位
4️⃣ :hover 选择器

🔑思路:
定义好按钮通用样式,然后利用伪元素绘制两个矩形背景,当鼠标悬浮在按钮上方时,两个伪元素矩形背景过渡显示出来。

一个双开门的按钮,交互效果比较强,但是实现很简单,快学起来吧。


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

核心代码

html 代码

<button class="btn69">button</button>

button 主体。

css 部分代码

.app{
  width: 100%;
  height: 100vh;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn69{
  width: 120px;
  height: 50px;
  background-color: transparent;
  color: #333333;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 2px;
  border: none;
  cursor: pointer;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
  transition: color 0.3s ease-in-out;
}
.btn69:before,.btn69:after{
  content: '';
  width: 0;
  height: 50px;
  background-color: #0093E9;
  position: absolute;
  top: 0;
  right: 60px;
  z-index: -1;
  transition: width 0.3s ease-in-out;
}
.btn69:after{
  left: 60px;
}
.btn69:hover:before,.btn69:hover:after{
  width: 60px;
}
.btn69:hover{
  color: #ffffff;
}

1、定义按钮通用样式,设置背景色为透明,设置 display: flex 布局,内容平行垂直居中,给 color 增加过渡参数。

2、利用 :before:after 伪元素绘制出两个矩形背景,通过 position 定位两个伪元素矩形的位置到按钮中间,定义矩形默认宽度为 0 ,并且给 width 增加过渡参数。

3、通过 :hover 选择器,让按钮中的文字颜色在鼠标悬浮上方时变成白色;同样通过 :hover 选择器,让两个伪元素矩形在鼠标悬浮上方时宽度从 0 变成 60px

完整代码如下

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 class="btn69">button</button>
    </div>
  </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn69{
  width: 120px;
  height: 50px;
  background-color: transparent;
  color: #333333;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 2px;
  border: none;
  cursor: pointer;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
  transition: color 0.3s ease-in-out;
}
.btn69:before,.btn69:after{
  content: '';
  width: 0;
  height: 50px;
  background-color: #0093E9;
  position: absolute;
  top: 0;
  right: 60px;
  z-index: -1;
  transition: width 0.3s ease-in-out;
}
.btn69:after{
  left: 60px;
}
.btn69:hover:before,.btn69:hover:after{
  width: 60px;
}
.btn69:hover{
  color: #ffffff;
}

页面渲染效果

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


[1] 原文阅读

[2] 《有趣的css》,访问网址:funcss.liujueyi.cn,欢迎大家访问。


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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

充电宝哪家好用推荐?买什么充电宝性价比高?2024年充电宝排行榜

说实话&#xff0c;我其实是个手机重度使用者&#xff0c;买过的充电宝也有无数款了&#xff0c;每次手机没电的时候插座都离得不是特别近&#xff0c;不是要下床充电就是要固定在一个位置充电感觉怪麻烦的&#xff0c;但是有了充电宝后可以在床上玩手机都不用担心手机没电&…

惯性测量单元M-G366PDG提供低误差系数的解决方案

人形机器人、自动驾驶的快速发展&#xff0c;促成了惯性测量单元(IMU)的爆火市场。据相关研究报告统计&#xff0c;IMU全球市场规模从2018年的99.94亿美元增加至2021年的135.95亿美元预计2027年将达到222.53亿美元&#xff0c;2021年至2027年复合增长率达8.56%。而由于智能技术…

VUE3+TS+elementplus创建table,纯前端的table

一、前言 开始学习前端&#xff0c;直接从VUE3开始&#xff0c;从简单的创建表格开始。因为自己不是专业的程序员&#xff0c;编程主要是为了辅助自己的工作&#xff0c;提高工作效率&#xff0c;VUE的基础知识并不牢固&#xff0c;主要是为了快速上手&#xff0c;能够做出一些…

免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)

Python蓝桥杯等级考试真题–第13级 一、 选择题 答案&#xff1a;C 解析&#xff1a;正向下标由0开始&#xff0c;下标3代表第四个元素&#xff0c;故答案为C。 答案&#xff1a;A 解析&#xff1a;range&#xff08;0,4&#xff09;的取前不取后&#xff0c;元组的符号是小括…

AI大模型在测试中的深度应用与实践案例

文章目录 1. 示例项目背景2. 环境准备3. 代码实现3.1. 自动生成测试用例3.2. 自动化测试脚本3.3. 性能测试3.4. 结果分析 4. 进一步深入4.1. 集成CI/CD管道4.1.1 Jenkins示例 4.2. 详细的负载测试和性能监控4.2.1 Locust示例 4.3. 测试结果分析与报告 5. 进一步集成和优化5.1. …

Transformer模型的简单学习

前言 Transformer 来源于一篇论文&#xff1a;Attention is all you need TRM在做一件什么事情呢&#xff1f;其实一开始它是被用于机器翻译的&#xff1a; 更详细的&#xff1a; 更详细的&#xff1a; 从上图可以看出&#xff0c;一个Encoders 下面包含了 n 个 Encoder&…

triton之paged attention

一 原理 图解大模型计算加速系列之&#xff1a;vLLM核心技术PagedAttention原理 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/691038809 二 源码分析 1 测试参数设置 test_paged_attention(num_seqs32,num_heads(64, 64),head_size64,block_size16,dtypetorch.float16,…

【ARM+Codesys案例】RK3568 +Codesys 软PLC方案在电镀生产线的应用

1 电镀生产简介 电镀是一种比较重要的工艺&#xff0c;产品经过电镀工艺处理后&#xff0c;不仅产品质量获得提高&#xff0c;产品性能也会大幅度提高&#xff0c;同时延长了产品的使用时间。电镀生产线是指按一定的电镀生产工艺要求,将有关的各种电镀处理槽、电镀行车运动装置…

ubuntu移动硬盘重命名

因为在ubuntu上移动硬盘的名字是中文的&#xff0c;所以想要改成英文的。 我的方法&#xff1a; 将移动硬盘插到windows上&#xff0c;直接右键重命名。再插到ubuntu上名字就改变了。 别人的方法&#xff1a; ubuntu下如何修改U盘名字-腾讯云开发者社区-腾讯云 在自带的软件…

安卓获取内部存储信息

目录 前言获取存储容量 前言 原生系统设置里的存储容量到底是怎么计算的&#xff0c;跟踪源码&#xff0c;涉及到VolumeInfo、StorageManagerVolumeProvider、PrivateStorageInfo、StorageStatsManager......等等&#xff0c;java上层没有办法使用简单的api获取到吗&#xff1f…

力扣239. 滑动窗口最大值

Problem: 239. 滑动窗口最大值 文章目录 题目描述思路复杂度Code 题目描述 思路 1.编写实现优先队列类&#xff1a; 1.1.实现push(int n):将元素n添加到队列尾&#xff0c;同时将n前面大于n的元素删除 1.2.实现int max():将队列头元素取出&#xff08;由于实现了push所以此时队…

「光储充放」一体充电站-一文读懂光储充放充电站

“光储充放”一体充电站作为一种储能充电的新形式渐渐走进人们的生活&#xff0c;全国很多地区都开始陆续投放运营“光储充放”一体充电站&#xff0c;今天的这篇文章&#xff0c;就带大家全面了解“光储充放”这一新型充电站。 头图来源 | 视觉中国 01 政策背景 早在2020年…

AI大模型实现德语口语练习

利用AI大模型实现德语口语练习的应用需要整合多种技术和资源&#xff0c;以确保学生能够获得全面、互动和有效的学习体验。以下是实现德语口语练习应用的详细流程和技术要点。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 实现流程 …

人脸防欺骗——基于皮肤斑块的快速安全的生物识别实现人脸识别防欺骗方法

1. 概述 深度学习的进步促使面部识别技术在许多领域得到应用&#xff0c;例如在线身份验证&#xff08;eKYC&#xff09;和电子设备的安全登录。面部识别是一种生物识别技术&#xff0c;对安全性要求很高。近年来&#xff0c;为了提高人脸识别技术的可靠性&#xff0c;人们引入…

12.Redis之补充类型渐进式遍历

1.stream 官方文档的意思, 就是 stream 类型就可以用来模拟实现这种事件传播的机制~~stream 就是一个队列(阻塞队列)redis 作为一个消息队列的重要支撑属于是 List blpop/brpop 升级版本.用于做消息队列 2.geospatial 用来存储坐标 (经纬度)存储一些点之后,就可以让用户给定…

boot项目中定时任务quartz

最近换项目组&#xff0c;发现项目中定时任务使用的是quartz框架&#xff0c;上一篇文章[springboot定时任务]也是使用的quartz&#xff0c;只不过实现方式不同&#xff0c;于是整理下 定时任务常用方法有Quartz&#xff0c;Spring自带的Schedule框架 Quartz基础知识 quartz…

深圳比创达EMC|EMI电磁干扰行业:行业发展的关键与挑战

在当今的高科技时代&#xff0c;电子产品无处不在&#xff0c;它们为我们的生活带来了极大的便利。然而&#xff0c;随着电子设备的普及和集成度的提高&#xff0c;电磁干扰&#xff08;EMI&#xff09;问题也日益凸显。 一、EMI电磁干扰行业&#xff1a;无处不在的挑战 电磁…

【全开源】宇鹿家政系统(FastAdmin+ThinkPHP+原生微信小程序)

&#xff1a;助力家政行业数字化升级 一、引言&#xff1a;家政服务的新篇章 随着移动互联网的普及和人们生活水平的提高&#xff0c;家政服务的需求日益增长。为了满足这一市场需求&#xff0c;并推动家政行业的数字化升级&#xff0c;我们特别推出了家政小程序系统源码。这…

不聚焦情绪,不精神内耗:成长的自我修炼

在我们的人生旅途中&#xff0c;总会遇到各种各样的困境和挑战。如何在逆境中保持积极的心态&#xff0c;专注于个人成长&#xff0c;是每一个人都需要面对和思考的问题。这篇文章将探讨如何不抱怨、不指责、不聚焦情绪、不精神内耗&#xff0c;专注于解决困境和个人成长。 问…

记一次 .NET某工控WPF程序被人恶搞的 卡死分析

一&#xff1a;背景 1. 讲故事 这一期程序故障除了做原理分析&#xff0c;还顺带吐槽一下&#xff0c;熟悉我的朋友都知道我分析dump是免费的&#xff0c;但免费不代表可以滥用我的宝贵时间&#xff0c;我不知道有些人故意恶搞卡死是想干嘛&#xff0c;不得而知&#xff0c;希…