常常看到一种酷炫的效果,鼠标hover一片区域后,区域显示出虚线边框,并且还有线条动画,那么这种效果具体是怎么实现的呢,本文提供了几种思路仅供参考。
基本HTML
<div class="box"> <p>测试测试</p> </div>
Easy-way
通过背景图片实现。
p得垂直居中哦,还记得如何垂直居中吗?详见另一篇博客~
.box { width: 100px; height: 100px; position: relative; background: url(https://www.zhangxinxu.com/study/image/selection.gif); p { position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; height: calc(100% - 2px); width: calc(100% - 2px); background-color: #fff; } }
repeating-linear-gradient
135度repeating线性渐变,p撑开高度,白色背景覆盖外层div渐变。
.box { width: 100px; height: 100px; background: repeating-linear-gradient( 135deg, transparent, transparent 4px, #000 4px, #000 8px ); overflow: hidden; // 新建一个BFC,解决margin在垂直方向上折叠的问题 animation: move 1s infinite linear; p { height: calc(100% - 2px); margin: 1px; background-color: #fff; } } @keyframes move { from { background-position: -1px; } to { background-position: -12px; } }
linear-gradient&&background
通过线性渐变以及background-size画出虚线,然后再通过background-position将其移动到四边。这种方式比较好的地方在于可以分别设置四条边的样式以及动画的方向,细心的同学应该会发现上一种方式的动画并不是顺时针或者逆时针方向的。
.box { width: 100px; height: 100px; background: linear-gradient(0deg, transparent 6px, #e60a0a 6px) repeat-y, linear-gradient(0deg, transparent 50%, #0f0ae8 0) repeat-y, linear-gradient(90deg, transparent 50%, #09f32f 0) repeat-x, linear-gradient(90deg, transparent 50%, #fad648 0) repeat-x; background-size: 1px 12px, 1px 12px, 12px 1px, 12px 1px; background-position: 0 0, 100% 0, 0 0, 0 100%; animation: move2 1s infinite linear; p { margin: 1px; } } @keyframes move2 { from { } to { background-position: 0 -12px, 100% 12px, 12px 0, -12px 100%; } }
linear-gradient&&mask
mask属性规范已经进入候选推荐规范之列,会说以后进入既定规范标准已经是板上钉钉的事情,大家可以放心学习,将来必有用处。
这里同样可以使用mask来实现相同的动画,并且可以实现虚线边框渐变色这种效果,与background不同的是mask需要在中间加上一块不透明的遮罩,不然p元素的内容会被遮盖住。
.box { width: 100px; height: 100px; background: linear-gradient(0deg, #f0e, #fe0); -webkit-mask: linear-gradient(0deg, transparent 6px, #e60a0a 6px) repeat-y, linear-gradient(0deg, transparent 50%, #0f0ae8 0) repeat-y, linear-gradient(90deg, transparent 50%, #09f32f 0) repeat-x, linear-gradient(90deg, transparent 50%, #fad648 0) repeat-x, linear-gradient(0deg, #fff, #fff) no-repeat; // 这里不透明颜色随便写哦 -webkit-mask-size: 1px 12px, 1px 12px, 12px 1px, 12px 1px, 98px 98px; -webkit-mask-position: 0 0, 100% 0, 0 0, 0 100%, 1px 1px; overflow: hidden; animation: move3 1s infinite linear; p { height: calc(100% - 2px); margin: 1px; background-color: #fff; } } @keyframes move3 { from { } to { -webkit-mask-position: 0 -12px, 100% 12px, 12px 0, -12px 100%, 1px 1px; } }
具体demo点这里
总结
以上所述是小编给大家介绍的css实现虚线边框滚动效果的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
css,边框,css,边框滚动
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]