如何用纯 CSS 创作背景色块变换的按钮特效
效果预览
在线演示
按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。
https://codepen.io/comehope/pen/XYKdwg
可交互视频教程
此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
请用 chrome, safari, edge 打开观看。
https://scrimba.com/p/pEgDAM/cM7RLUG
源代码下载
本地下载
每日前端实战系列的全部源代码请从 github 下载:
https://github.com/comehope/front-end-daily-challenges
代码解读
定义 dom,标准导航结构下,<li> 中的每个字母用 <span> 包裹:
<nav><ul><li><span>p</span><span>r</span><span>o</span><span>d</span><span>u</span><span>c</span><span>t</span><span>s</span></li></ul>
</nav>
居中显示:
body {margin: 0;height: 100vh;display: flex;align-items: center;justify-content: center;background: linear-gradient(to right bottom, dimgray, black);
}
定义文字样式:
ul {padding: 0;
}li {list-style-type: none;
}li span {color: white;font-size: 50px;font-family: monospace;text-transform: uppercase;letter-spacing: 0.1em;
}
当鼠标悬停时,用伪元素绘制倾斜的背景色块:
li span {position: relative;transition: 500ms;
}li:hover span {color: #333;
}li span::before {content: '';position: absolute;height: 100%;width: 0;z-index: -1;transition: 500ms;
}li:hover span::before {width: 70%;transform: rotate(-25deg);background: white;
}
设置缓动延时,增加动画效果:
li:hover span {transition-delay: calc(80ms * var(--n) + 10ms);
}li:hover span::before {transition-delay: calc(80ms * var(--n));
}li span:nth-child(1) {--n: 1;
}li span:nth-child(2) {--n: 2;
}li span:nth-child(3) {--n: 3;
}li span:nth-child(4) {--n: 4;
}li span:nth-child(5) {--n: 5;
}li span:nth-child(6) {--n: 6;
}li span:nth-child(7) {--n: 7;
}li span:nth-child(8) {--n: 8;
}
在单词左侧增加一条鼠标悬停时变亮的竖线:
li {padding-left: 2em;border: 2px solid transparent;border-left-color: silver;transition: 500ms;
}li:hover {border-left-color: white;
}
dom 中增加几个按钮,形成一组按钮:
<nav><ul><li><span>h</span><span>o</span><span>m</span><span>e</span></li><li><span>p</span><span>r</span><span>o</span><span>d</span><span>u</span><span>c</span><span>t</span><span>s</span></li><li><span>s</span><span>e</span><span>v</span><span>i</span><span>c</span><span>e</span><span>s</span></li><li><span>c</span><span>o</span><span>n</span><span>t</span><span>a</span><span>c</span><span>t</span></li></ul>
</nav>
最后,文字居中对齐,再调整一下按钮间距:
li {text-align: center;margin: 1em 0;
}
大功告成!
原文地址:https://segmentfault.com/a/1190000015192218
如何用纯 CSS 创作背景色块变换的按钮特效相关推荐
- 如何用纯 CSS 创作一个金属光泽 3D 按钮特效
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/full/MGeRRO 可交互视频教程 此 ...
- 如何用纯 CSS 创作一个金属光泽 3D 按钮特效 1
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/full/MGeRRO 可交互视频教程 此 ...
- 如何用纯 CSS 创作气泡填色的按钮特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKqZjy 可交互视频 ...
- 4. 纯 CSS 创作一个金属光泽 3D 按钮特效
4. 纯 CSS 创作一个金属光泽 3D 按钮特效 原文地址:https://segmentfault.com/a/1190000014599280 HTML代码: <div class=&qu ...
- 前端每日实战:33# 视频演示如何用纯 CSS 创作牛奶文字变换效果
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MGNWOm 可交互视频教程 此视频 ...
- 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视 ...
- 如何用纯 CSS 创作一个精彩的彩虹 loading 特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/vjvoow 可交互视频教 ...
- 如何用纯 CSS 创作出平滑的层叠海浪特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/JvmBdE 可交互视频教 ...
- 如何用纯 CSS 创作一个小球上台阶的动画
如何用纯 CSS 创作一个小球上台阶的动画 效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/come ...
最新文章
- Js中的style,currentStyle,getComputedStyle()区别
- linux_Nginx日志
- 《图说VR入门》——DeepoonVR的大鹏(陀螺仪)枪
- Git使用技巧(3)-- 远程操作
- Sticks UVA - 307(切木棍 线性区间dp,线性dp,区间思想。)
- 鼠标移入通过时间控制实现两个不同步的动画效果
- 从零基础入门Tensorflow2.0 ----二、4.3 wide deep 模型(多输入)
- 【TDA4系列】硬件分析与刷写程序的几种方式
- 开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- ps怎么加底部阴影_PS给物体底部加阴影
- 排序算法——侏儒排序(Gnome sort)【代码实现】
- 3D立体相册,一个可旋转的立体相册
- 学习笔记(01):【吴刚】PS软件基础实用技巧标准视频教程-04-文件的打开及注意事项...
- dijkstra算法为什么不能计算负权重?
- Objective-C学习资源
- 架构衍变过程----58同城沈剑:好的架构源于不停地衍变,而非设计
- 计算机网络管理员初级是几级,计算机网络管理员初级试卷.pdf
- 职称申报评审管理系统_《四川省职称评审管理暂行办法》出台
- 光谱特征选择---竞争自适应重加权采样CARS
- 【网络技术】win8和8.1如何离线装 NET Framework 3.5
热门文章
- 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
- NSIS学习笔记(转)
- mysql 表 组织 管理_MySQL 基础知识梳理学习(二)----记录在页面层级的组织管理...
- 若依框架集成redis缓存
- LookupError: unknown encoding: utf-8
- 使用hbase时常见问题解决方法
- php cms 选择哪个好?
- dqn在训练过程中loss越来越大_深度强化学习——从DQN到DDPG
- php 重定向 post,使用Jquery post时PHP不会重定向
- 使用pyinstaller把pyton文件打包成exe文件