【全】CSS动画大全之按钮【c】
效果预览

代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="https://www.cnblogs.com/beixuan">
<meta name="version" content="1.0.0">
<meta name="date" content="2021/12/01 18:00:26">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CSS动画大全之按钮组[b]</title>
</head>
<style type="text/css">
/* 设置 body 内、外边距为 0 */
body {
margin: 0;
padding: 0;
display: grid;
grid-template-columns: 100%;
grid-template-rows: 100%;
justify-items: center;
align-items: center;
width: 100vw;
height: 100vh;
background-color: #FFF;
}
.page-wrapper {
display: grid;
grid-template-columns: 33% 34% 33%;
grid-template-rows: 100%;
justify-items: center;
align-items: center;
width: 100vw;
height: 100vh;
}
.page-wrapper > div {
display: inline-block;
}
.btn {
width: 12.5rem;
height: 3.125rem;
line-height: 3.125rem;
font-size: 1.5rem;
padding: 0.5rem;
text-align: center;
box-shadow: 0 0 1px #000;
position: relative;
transition: all 0.5s;
margin-bottom: 1rem;
cursor: pointer;
overflow: hidden;
}
.btn:hover {
box-shadow: 0 0 0px #000;
}
.btn-danger, .btn-success {
height: 7.85rem;
line-height: 7.85rem;
}
/* 默认 */
.btn-default:hover {
color: #00aaff;
}
.btn-default::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #00aaff;
border-right: 5px solid #00aaff;
top: -100%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-default:hover::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #00aaff;
border-right: 5px solid #00aaff;
top: 0%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-default::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #00aaff;
border-bottom: 5px solid #00aaff;
top: 0;
left: 100%;
transition: all 0.4s;
z-index: -1;
}
.btn-default:hover::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #00aaff;
border-bottom: 5px solid #00aaff;
top: 0;
left: 0;
transition: all 0.4s;
z-index: -1;
}
/* 警告 */
.btn-warning:hover {
color: #ffaa00;
}
.btn-warning::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #ffaa00;
border-right: 5px solid #ffaa00;
top: 100%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-warning:hover::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #ffaa00;
border-right: 5px solid #ffaa00;
top: 0%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-warning::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #ffaa00;
border-bottom: 5px solid #ffaa00;
top: 0;
left: 100%;
transition: all 0.4s;
z-index: -1;
}
.btn-warning:hover::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #ffaa00;
border-bottom: 5px solid #ffaa00;
top: 0;
left: 0;
transition: all 0.4s;
z-index: -1;
}
/* 失败 */
.btn-danger:hover {
color: #e30000;
}
.btn-danger::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #e30000;
border-right: 5px solid #e30000;
top: -100%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-danger:hover::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #e30000;
border-right: 5px solid #e30000;
top: 0%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-danger::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #e30000;
border-bottom: 5px solid #e30000;
top: 0;
left: -100%;
transition: all 0.4s;
z-index: -1;
}
.btn-danger:hover::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #e30000;
border-bottom: 5px solid #e30000;
top: 0;
left: 0;
transition: all 0.4s;
z-index: -1;
}
/* 成功 */
.btn-success:hover {
color: #00d064;
}
.btn-success::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #00d064;
border-right: 5px solid #00d064;
top: 100%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-success:hover::before {
content: '';
width: calc(100% - 10px);
height: 100%;
position: absolute;
border-left: 5px solid #00d064;
border-right: 5px solid #00d064;
top: 0%;
left: 0;
transition: all 0.4s;
z-index: -1;
}
.btn-success::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #00d064;
border-bottom: 5px solid #00d064;
top: 0;
left: -100%;
transition: all 0.4s;
z-index: -1;
}
.btn-success:hover::after {
content: '';
width: 100%;
height: calc(100% - 10px);
position: absolute;
border-top: 5px solid #00d064;
border-bottom: 5px solid #00d064;
top: 0;
left: 0;
transition: all 0.4s;
z-index: -1;
}
</style>
<body>
<!-- 页面容器 -->
<div class="page-wrapper">
<div class="btn btn-danger">失败 Left</div>
<div>
<div class="btn btn-default">默认 Top</div>
<div class="btn btn-warning">警告 Bottom</div>
</div>
<div class="btn btn-success">成功 Right</div>
</div>
</body>
</html>
往期回顾
【全】CSS动画大全之按钮【c】的更多相关文章
- 【2016年特别福利】史上最全CSS学习资料大全
css学习篇 [2016年特别福利]史上最全CSS学习资料大全
- 原生html,css+js写下载按钮有提示动画效果的落地页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...
- 这样使用 GPU 渲染 CSS 动画(转)
大多数人知道现代网络浏览器使用GPU来渲染部分网页,特别是具有动画的部分. 例如,使用transform属性的CSS动画看起来比使用left和top属性的动画更平滑. 但是如果你问,“我如何从GPU获 ...
- Web高性能动画及渲染原理(1)CSS动画和JS动画
目录 一. CSS动画 和 JS动画 1.1 CSS动画 1.2 JS动画 1.3 小结 二. 使用Velocity.js实现动画 示例代码托管在:http://www.github.com/dash ...
- 高性能Web动画和渲染原理系列(1)——CSS动画和JS动画
[摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...
- JS框架_(JQuery.js)文章全屏动画切换
百度云盘 传送门 密码:anap 文章全屏动画切换效果 <!doctype html> <html lang="zh"> <head> < ...
- Css 动画的回调
在做项目中经常会遇到使用动画的情况.以前的情况是用js写动画,利用setTimeout函数或者window.requestAnimationFrame()实现目标元素的动画效果.虽然后者解决了刷新频率 ...
- [转]CSS hack大全&详解
转自:CSS hack大全&详解 1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的, ...
- CSS动画与GPU
写在前面 满世界的动画性能优化技巧,例如: 只允许改变transform.opacity,其它属性不要动,避免重新计算布局(reflow) 对动画元素应用transform: translate3d( ...
- 15个来自 CodePen 的酷炫 CSS 动画效果【下篇】
CodePen 是一个在线的前端代码编辑和展示网站,能够编写代码并即时预览效果.你在上面可以在线分享自己的 Web 作品,也可以欣赏到世界各地的优秀开发者在网页中实现的各种令人惊奇的效果. 今天这篇文 ...
随机推荐
- 硬件开发笔记(十九):Altium Designer 21软件介绍和安装过程
前言 AD硬件设计软件之一,前面说了allego,但是allego对项目的管理.原理图生成PCB,PCB反向原理图等方面比较复杂,对于一般的硬件(非多个高速电路),选择AD能够加大的节省开发工作量 ...
- spring多数据源配置笔记
本文阐述使用多数据源的额场景,以及如何使用springboot的配置多数据源. 关于后者,主要是直接引用其它博文:https://blog.csdn.net/u012060033/article/de ...
- Linux 提权-LXD 容器
本文通过 Google 翻译 LXD Container – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. 0 ...
- Debian安装Redis服务
Debian安装Redis服务 安装命令 apt-get update apt-get install redis-server 等待安装完成 配置密码 编辑Redis的配置文件/etc/redis/ ...
- mysql判断两个字符串(以逗号分隔)是否存在交集
转载:https://blog.csdn.net/username666/article/details/107815331?utm_medium=distribute.pc_relevant.non ...
- require模块化 AMD和CMD
在CommonJS中,有一个全局性方法require(),用于加载模块.假定有一个数学模块math.js,就可以像下面这样加载. 1 var math = require('math'); 然后,就可 ...
- mysql 二进制的读取与写入
插入语句 用binary转换函数可将字符串转为二进制 insert into mytable (id, bin) values(1, binary('abcdef')) 查询语句 用cast进行类型转 ...
- 开源免费又好用的中式数据报表:UReport2是一款高性能的架构在Spring之上纯Java报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。
北润乾.南帆软,数加发力在云端. uReport 身何安?中式报表真开源. 报表江湖之中,uReport安身立命的产品品类定位是什么? 说来很简单,uReport的价值在于填补了这样一个市场空白:开源 ...
- 解决方案 | onenote无法同步,显示:证书错误,应用程序在加载SSL库是遇到内部错误。
解决方案:一般是公司网络或者学校网络的问题,更换手机使用的数据流量热点无线网络即可.
- 国赛2024 simple_php(三种方法)
<?php ini_set('open_basedir', '/var/www/html/'); error_reporting(0); if(isset($_POST['cmd'])){ $c ...