您现在的位置是:网站首页> 编程资料编程资料
基于CSS 属性实现按钮悬停边框和背景动画集合CSS 制作带边框背景色透明的消息框css3 边框、背景、文本效果的实现代码CSS3实现多背景模拟动态边框的效果CSS控制背景图像平铺实现边框阴影效果css div 边框阴影利用背景图或内外层div实现层次感觉阴影效果css样式div或li在ie6下背景平铺及border边框断线解决技巧 CSS新特性:圆角边框多栏Gird布局背景设置css背景和边框标签实例详解
2021-09-04
1053人已围观
简介 这篇文章主要介绍了基于CSS 属性实现按钮悬停边框和背景动画集合,需要的朋友可以参考下
心属性
opacity: .999 使元素产生一个层叠上下文,这样按钮6和8的动画就不会被背景遮盖住了
left/top: -1px 使伪元素与按钮的位置重合,原因在下方
transition-delay 横向与纵向边框动画产生细微的延时效果
z-index: -1 防止动画产生的颜色块盖住按钮的文字
设置了left/top/right/bottom的absolute元素,是相对于父元素的padding-box进行定位的,所以这里伪元素要移动一个边框的距离,才能与按钮的位置重合,否则会出现下面的效果:

可以看到,绿色边框和灰色边框有1px的距离
*, *: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 属性实现按钮悬停边框和背景动画集合 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关内容
- 详解解决flex布局的justify-content: space-between对齐方式的一个BUG的两种方法详解CSS中的display:flex||inline-flex属性解决display:flex属性 justify-content: space-between换行后的排版问
- 详解在CSS中解决内容过长的问题css 实现文字过长自动隐藏功能CSS实现标题文字过长部分显示省略号的方法pre标签的css代码,防止代码pre中代码过长等问题字符串过长CSS截取多余文字并用省略号显示CSS解决无空格的字母、数字过长不自动换行的问题
- css实现虚线边框滚动效果的实例代码CSS3 边框效果css效果之边框内圆角CSS揭秘之多重边框的实现css3实现六边形边框的实例代码纯css实现动态边框的示例代码基于CSS 属性实现按钮悬停边框和背景动画集合CSS边框长度控制功能的实现
- css3实现可拖动的魔方3d效果 CSS3 SVG实现的复古粽子魔方变换动画特效源码CSS3实现3D视觉旋转魔方动画特效源码纯CSS3 3D魔方翻转动画特效源码
- css性能优化-will-change使用详解CSS前端页面渲染优化属性will-change的具体使用
- CSS实现垂直居中的七个方法实例代码详解
- CSS3 实现童年的纸飞机 纯css3+svg实现的纸飞机飞行动画特效源码CSS3 SVG实现沿固定路径飞行的纸飞机动画效果源码纯css3制作纸飞机404动画页面模板特效源码纯CSS3实现迎着阳光飞行的3D纸飞机动画效果源码jQuery+css3实现的卡片变换成折叠纸飞机发送祝福动画特效源码CSS3实现纸飞机动画特效源码
- CSS 模拟float实现center文字左右环绕图片的效果css实现文字居中两边横线效果的示例代码CSS设置文字图片垂直居中的方法总结深入理解CSS行高line-height与文本垂直居中的原理css实现移动端图片文字水平居中CSS实现同一行的图片和文字垂直居中对齐的方法DIV+CSS中让布局、背景图片、文字内容居中的方法css实现文字图片垂直居中效果CSS解决文字与图片不能水平居中对齐的问题纯css多种方法实现div中单行文字、多行文字及嵌套div垂直水平居中css 实现文字垂直居中
- SASS 中变量的默认值的使用方法sass(scss)的安装与使用教程sass简介_动力节点Java学院整理详解CSS的Sass框架中代码注释的编写方法利用CSS的Sass预处理器(框架)来制作居中效果深入解析CSS的Sass框架中混合宏的使用使用Sass来编写面向对象的CSS代码CSS制作框架 Sass 3.4.4 今日发布 学习CSS预处理器:Sass和less进行对比
- 纯CSS实现单一div的正多边形变换
