有趣的css - 简约的动态关注按钮

简约的动态关注按钮

  • 页面效果
  • 核心代码
    • html代码
    • css代码
  • 完整代码
    • html页面
    • css样式
    • 页面效果

页面效果

此效果主要使用 css 伪选择器配合 css content 属性,以及 transition(过渡)属性来实现一个简约的动态按钮效果。

此效果可适用于关注按钮、详情按钮等,增强用户交互体验。


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

核心代码

html代码

<button>关注我</button>

按钮主体代码就是一个 button 按钮标签,比较简单。

css代码

button{width: 140px;height: 46px;font-size: 16px;font-family: Arial, Helvetica, sans-serif;font-weight: 700;color: #333;background-color: transparent;  /* 使主体 button 背景透明 */border: none;position: relative;box-sizing: border-box;transition: all 0.4s ease-in-out;  /* 增加过渡效果 */
}
button:before{   /* 伪选择器 :before */content: '';  /* css content 属性 */width: 4px;height: inherit;position: absolute;top: 0;left: 0;z-index: -5;  /* 设置层叠顺序低于 button 主体,不遮掩 button 中的文字内容 */background-color: #333;transition: all 0.4s ease-in-out;  /* 增加过渡效果 */
}
button:hover{cursor: pointer;color: #fff;
}
button:hover:before{width: 100%;border-radius: 6px;
}

使用伪选择器 :before 配合 css content 属性,然后设置 transition 参数来实现按钮过渡动画效果。


想了解更多 css 中伪选择器的可以看我之前的这篇文章。

一般人我都不告诉他的那些css伪选择器

想知道css content 属性的更多妙用和技巧的可以看我的这篇文章。

CSS Content 属性的几种妙用和技巧


完整代码

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>关注我</button></div></body>
</html>

css样式

.app{width: 100%;height: 100vh;position: relative;display: flex;justify-content: center;align-items: center;
}
button{width: 140px;height: 46px;font-size: 16px;font-family: Arial, Helvetica, sans-serif;font-weight: 700;color: #333;background-color: transparent;border: none;position: relative;box-sizing: border-box;transition: all 0.4s ease-in-out;
}
button:before{content: '';width: 4px;height: inherit;position: absolute;top: 0;left: 0;z-index: -5;background-color: #333;transition: all 0.4s ease-in-out;
}
button:hover{cursor: pointer;color: #fff;
}
button:hover:before{width: 100%;border-radius: 6px;
}

页面效果

以上就是全部代码以及简单的写法思路,如果喜欢这个按钮,给我点个赞、点个关注吧。


[1] 原文阅读

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

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

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

相关文章

问题:创业者在组建创业团队时,在个人特征和动机方面更应该注重创业者的( ) #知识分享#微信#媒体

问题&#xff1a;创业者在组建创业团队时&#xff0c;在个人特征和动机方面更应该注重创业者的&#xff08; &#xff09; 参考答案如图所示

Architecture Lab:Part C【流水线通用原理/Y86-64的流水线实现/实现IIADDQ指令】

目录 任务描述 知识回顾 流水线通用原理 Y86-64流水线实现&#xff08;PIPE-与PIPE&#xff09; 开始实验 IIADDQ指令的添加 优化 ncopy.ys 仅用第四章知识&#xff0c;CEP11.55 8x1展开&#xff0c;CPE9.35 8x1展开2x1展开消除气泡&#xff0c;CPE8.10 流水线化通过…

斗地主登录界面(JAVA图形化界面)设置

1.实现代码 import CodeUtil.CodeUtil; import domain.User;import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList;public class LoginGame extends JFrame implements MouseListen…

高校毕业生就业管理系统(ssm)

登录界面 管理员界面 学生界面 企业的单位用户界面 1、系统说明 &#xff08;1&#xff09;spring、springmvc、mybatis、mysql、jsp &#xff08;2&#xff09;系统分为学生、管理员、企业用户三种角色 欢迎留言交流学习&#xff0c;qq: 978206256

kubesphere部署k8s-v1.23.10

功能&#xff1a; &#x1f578; 部署 Kubernetes 集群 &#x1f517; Kubernetes 多集群管理 &#x1f916; Kubernetes DevOps &#x1f50e; 云原生可观测性 &#x1f9e9; 基于 Istio 的微服务治理 &#x1f4bb; 应用商店 &#x1f4a1; Kubernetes 边缘节点管理 &#x1…

信创ARM架构QT应用开发环境搭建

Linux ARM架构QT应用开发环境搭建 前言交叉工具链Ubuntu上安装 32 位 ARM 交叉工具链Ubuntu上安装 64 位 ARM 交叉工具链 交叉编译 QT 库下载 QT 源码交叉编译 QT 源码 Qt Creator交叉编译配置配置 Qt Creator Kits创建一个测试项目 小结 前言 有没有碰到过这种情况&#xff1…

有向图的拓扑排序-BFS求解

题目 给定一个n个点m条边的有向图&#xff0c;图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列&#xff0c;如果拓扑序列不存在&#xff0c;则输出-1。 若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y)&#xff0c;x在A中都出现在y之前&#xff0c;则称…

Vue3开发环境搭建和工程结构(一)

一、NVM和Node.js安装 NVM 是 Node Version Manager&#xff08;Node 版本管理工具&#xff09;的缩写&#xff0c;是一个命令行工具&#xff0c;用于管理和切换到不同版本的 Node.js。 1、前往 nvm-windows 仓库&#xff0c;然后单击立即下载 2、下载最新版本 3 、按照安装向…

HarmonyOS远程真机调试方法

生成密钥库文件 打开DevEco Studio&#xff0c;点击菜单栏上的build&#xff0c; 填一些信息点击&#xff0c;没有key的话点击new一个新的key。 生成profile文件 AppGallery Connect (huawei.com) 进入该链接网站&#xff0c;点击用户与访问将刚生成的csr证书提交上去其中需…

机器学习系列5-特征组合、简化正则化

1.特征组合 1.1特征组合&#xff1a;编码非线性规律 我们做出如下假设&#xff1a;蓝点代表生病的树。橙色的点代表健康的树。 您可以绘制一条直线将生病的树与健康的树清晰地分开吗&#xff1f;不可以。这是一个非线性问题。您绘制的任何线条都无法很好地预测树的健康状况…

redis下载与安装教程(centos下)

文章目录 一&#xff0c;redis下载1.1上传到linux服务器上 二&#xff0c;redis安装2.1 安装依赖2.2 解压包2.3 编译并安装2.4 指定配置启动2.5 设置redis开机自启 一&#xff0c;redis下载 官网&#xff1a; https://redis.io1.1上传到linux服务器上 我用filezila上传到/us…

防御保护---防火墙的可靠性

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.防火墙可靠性概述 防火墙的防护功能基于状态检测的前提下会存在会话表&#xff1b;会话表存在老化时间&#xff0c;仅在流量触发后防火墙会刷新会话表&#xff0c;因此防火墙无法像路由器那样…