文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用CSS 属性怎么实现按钮悬停边框和背景动画集合

2023-06-08 06:43

关注

使用CSS 属性怎么实现按钮悬停边框和背景动画集合?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

心属性

opacity: .999 使元素产生一个层叠上下文,这样按钮6和8的动画就不会被背景遮盖住了

left/top: -1px 使伪元素与按钮的位置重合,原因在下方

transition-delay 横向与纵向边框动画产生细微的延时效果

z-index: -1 防止动画产生的颜色块盖住按钮的文字

设置了left/top/right/bottom的absolute元素,是相对于父元素的padding-box进行定位的,所以这里伪元素要移动一个边框的距离,才能与按钮的位置重合,否则会出现下面的效果:

使用CSS 属性怎么实现按钮悬停边框和背景动画集合
 

可以看到,绿色边框和灰色边框有1px的距离

<div class="main-container"><section><button class="btn btn-green btn-border-o">按钮一</button><button class="btn btn-blue btn-border">按钮二</button><button class="btn btn-purple btn-border-rev-o">按钮三</button><button class="btn btn-navy btn-border-rev">按钮四</button></section><section><button class="btn btn-orange btn-fill-vert-o">按钮五</button><button class="btn btn-red btn-fill-vert">按钮六</button><button class="btn btn-green btn-fill-horz-o">按钮七</button><button class="btn btn-blue btn-fill-horz">按钮八</button></section></div>*, *:before, *:after {transition: all 0.3s;}section {position: relative;padding: 5px 0 5px;text-align: center;}.btn {position: relative;display: inline-block;line-height: 35px;margin: 8px;padding: 0 15px;font-size: 15px;border-radius: 3px;opacity: .999;cursor: pointer;}.btn-border-o {background-color: transparent;border: 1px solid #d0d0d0;color: #B8B8B8;}.btn-border-o:before, .btn-border-o:after {content: '';position: absolute;border-style: solid;border-radius: 3px;box-sizing: content-box;}.btn-border-o:before {left: 0;top: -1px;width: 0;height: 100%;border-width: 1px 0 1px 0;transition-delay: 0.05s;}.btn-border-o:after {top: 0;left: -1px;width: 100%;height: 0;border-width: 0 1px 0 1px;}.btn-border-o:hover:before {width: 100%;}.btn-border-o:hover:after {height: 100%;}.btn-border-o.btn-green:before, .btn-border-o.btn-green:after {border-color: #2ecc71;}.btn-border-o.btn-green:hover {color: #2ecc71;}.btn-border {background-color: #e5e5e5;border: 1px solid #e5e5e5;color: #a6a6a6;}.btn-border:before, .btn-border:after {position: absolute;content: '';border-style: solid;border-radius: 3px;box-sizing: content-box;}.btn-border:before {top: -1px;left: 0;width: 0;height: 100%;border-width: 1px 0 1px 0;transition-delay: 0.05s;}.btn-border:after {top: 0;left: -1px;width: 100%;height: 0;border-width: 0 1px 0 1px;}.btn-border:hover {background-color: transparent;}.btn-border:hover:before {width: 100%;}.btn-border:hover:after {height: 100%;}.btn-border.btn-blue:before, .btn-border.btn-blue:after {border-color: #3498db;}.btn-border.btn-blue:hover {color: #3498db;}.btn-border-rev-o {background-color: transparent;border: 1px solid #d0d0d0;color: #B8B8B8;}.btn-border-rev-o:before, .btn-border-rev-o:after {content: '';position: absolute;border-style: solid;border-radius: 3px;box-sizing: content-box;}.btn-border-rev-o:before {top: -1px;right: 0;width: 0;height: 100%;border-width: 1px 0 1px 0;transition-delay: 0.05s;}.btn-border-rev-o:after {left: -1px;bottom: 0;width: 100%;height: 0;border-width: 0 1px 0 1px;}.btn-border-rev-o:hover:before {width: 100%;}.btn-border-rev-o:hover:after {height: 100%;}.btn-border-rev-o.btn-purple:before, .btn-border-rev-o.btn-purple:after {border-color: #9b59b6;}.btn-border-rev-o.btn-purple:hover {color: #9b59b6;}.btn-border-rev {background-color: #e5e5e5;border: 1px solid #e5e5e5;color: #a6a6a6;}.btn-border-rev:before, .btn-border-rev:after {content: '';position: absolute;border-style: solid;border-radius: 3px;box-sizing: content-box;}.btn-border-rev:before {top: -1px;right: 0;width: 0;height: 100%;border-width: 1px 0 1px 0;}.btn-border-rev:after {bottom: 0;left: -1px;width: 100%;height: 0;border-width: 0 1px 0 1px;transition-delay: 0.05s;}.btn-border-rev:hover {background-color: transparent;}.btn-border-rev:hover:before {width: 100%;}.btn-border-rev:hover:after {height: 100%;}.btn-border-rev.btn-navy:before, .btn-border-rev.btn-navy:after {border-color: #34495e;}.btn-border-rev.btn-navy:hover {color: #34495e;}.btn-fill-vert-o {background-color: transparent;border: 1px solid #d0d0d0;color: #B8B8B8;overflow: hidden;}.btn-fill-vert-o:before, .btn-fill-vert-o:after {content: '';position: absolute;left: 0;width: 100%;height: 0;opacity: 0;z-index: -1;}.btn-fill-vert-o:before {top: 50%;}.btn-fill-vert-o:after {bottom: 50%;}.btn-fill-vert-o:hover {color: #fff;}.btn-fill-vert-o:hover:before, .btn-fill-vert-o:hover:after {height: 50%;opacity: 1;}.btn-fill-vert-o.btn-orange:before, .btn-fill-vert-o.btn-orange:after {background-color: #e67e22;}.btn-fill-vert-o.btn-orange:hover {border-color: #e67e22;}.btn-fill-vert {background-color: #e5e5e5;border: 1px solid #e5e5e5;color: #a6a6a6;overflow: hidden;}.btn-fill-vert:before, .btn-fill-vert:after {content: '';position: absolute;width: 100%;height: 0;opacity: 0;left: 0;z-index: -1;}.btn-fill-vert:before {top: 50%;}.btn-fill-vert:after {bottom: 50%;}.btn-fill-vert:hover {color: #fff;}.btn-fill-vert:hover:before, .btn-fill-vert:hover:after {height: 50%;opacity: 1;}.btn-fill-vert.btn-red:before, .btn-fill-vert.btn-red:after {background-color: #e74c3c;}.btn-fill-vert.btn-red:hover {border-color: #e74c3c;}.btn-fill-horz-o {background-color: transparent;border: 1px solid #d0d0d0;color: #B8B8B8;overflow: hidden;}.btn-fill-horz-o:before, .btn-fill-horz-o:after {content: '';position: absolute;top: 0;width: 0;height: 100%;opacity: 0;z-index: -1;}.btn-fill-horz-o:before {left: 50%;}.btn-fill-horz-o:after {right: 50%;}.btn-fill-horz-o:hover {color: #fff;}.btn-fill-horz-o:hover:before, .btn-fill-horz-o:hover:after {width: 50%;opacity: 1;}.btn-fill-horz-o.btn-green:before, .btn-fill-horz-o.btn-green:after {background-color: #2ecc71;}.btn-fill-horz-o.btn-green:hover {border-color: #2ecc71;}.btn-fill-horz {background-color: #e5e5e5;border: 1px solid #e5e5e5;color: #a6a6a6;overflow: hidden;}.btn-fill-horz:before, .btn-fill-horz:after {content: '';position: absolute;top: 0;width: 0;height: 100%;opacity: 0;z-index: -1;}.btn-fill-horz:before {left: 50%;}.btn-fill-horz:after {right: 50%;}.btn-fill-horz:hover {color: #fff;}.btn-fill-horz:hover:before, .btn-fill-horz:hover:after {width: 50%;opacity: 1;}.btn-fill-horz.btn-blue:before, .btn-fill-horz.btn-blue:after {background-color: #3498db;}.btn-fill-horz.btn-blue:hover {border-color: #3498db;}

看完上述内容,你们掌握使用CSS 属性怎么实现按钮悬停边框和背景动画集合的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯