CSS3 制作一个边框向周围散开的按钮效果

摘要:
分析主要还是运用CSS3的transition,animation,transform还有渐变背景等特性。由于按钮在鼠标进入时有不同的样式,所以要对其:hover状态运用另外的背景样式通过对按钮的:after状态添加一个内容为空的元素,并给其一个边框,这样在鼠标进入后我们让这个隐藏的空元素变大直到淡出,就得到我们看到的效果了构建基本按钮样式做为例子,我们的页面会很简单,就放一个a标签作为按钮,然后对其写样式让它看起来更像一个按钮。下面是一个效果的截图。
分析

主要还是运用CSS3的transition, animation, transform还有渐变背景等特性。

  • 由于按钮在鼠标进入时有不同的样式,所以要对其:hover状态运用另外的背景样式
  • 通过对按钮的:after状态添加一个内容为空的元素,并给其一个边框,这样在鼠标进入后我们让这个隐藏的空元素变大直到淡出,就得到我们看到的效果了

CSS3 制作一个边框向周围散开的按钮效果第1张

构建基本按钮样式

做为例子,我们的页面会很简单,就放一个a标签作为按钮,然后对其写样式让它看起来更像一个按钮。并定义好:after元素。

1 <style type="text/css">
2 .button{
3 cursor:pointer;
4 text-decoration:none;
5 padding:10px;
6 color:#fff;
7 border-radius:10px;
8 position:absolute;
9 top:100px;
10 left:48%;
11 background:linear-gradient(#93c, #50c);
12 border:1px solid purple;
13     }
14 .button:after{
15 content:"";
16 position:absolute;
17 top:0;
18 left:0;
19 width:100%;
20 height:100%;
21 border-radius:10px;
22 opacity:0;
23 border:1px solid purple;
24     }
25 .button:hover{
26 background:linear-gradient(#b5e, #93c);
27     }
28 </style>
29 <body>
30     <a class="button"href="javascript:void(0);" >Fake Button</a>
31 </body>
添加动画

首先用keyframes定义动画

1 @-webkit-keyframes boom {
2 0% {
3 opacity: 0
4 }
5 5% {
6 opacity: 1
7 }
8 100% {
9 -webkit-transform: scale(1.3);
10 transform: scale(1.3);
11 opacity: 0
12 }
13 }
14 @keyframes boom {
15 0% {
16 opacity: 0
17 }
18 5% {
19 opacity: 1
20 }
21 100% {
22 transform: scale(1.3);
23 transform: scale(1.3);
24 opacity: 0
25 }
26 }

再将其运用到按钮后面隐藏的元素上

.button:hover:after {-webkit-animation:boom 0.5s ease;animation:boom 0.5s ease;
}
扩展

另外,我还发现一个jQuery插件jQuery.twinkle专门做这样的效果,因为是通过js做的,所以原理跟上面的完全不一样,但这个插件提供的效果丰富,且很炫很有创意,大家可以去欣赏下。下面是一个效果的截图。

CSS3 制作一个边框向周围散开的按钮效果第2张

免责声明:文章转载自《CSS3 制作一个边框向周围散开的按钮效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenMP 线程同步之临界区linux3.0.4编译LDD中的scull全过程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jquery面试题整合

一、Jquery测试题 下面哪种不是jquery的选择器?(单选) A、基本选择器 B、后代选择器 C、类选择器 D、进一步选择器 考点:jquery的选择器 (C) 当DOM加载完成后要执行的函数,下面哪个是正确的?(单选) jQuery(expression, [context]) B、jQuery(html,[ownerDocument]) C、jQ...

vue对比其他框架

对比其他框架React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式(Reactive)和组件化(Composable)的视图组件。 将注意力集中保持在核心库,伴随于此,有配套的路由和负责处理全局状态管理的库。 性能简介 Vue 的性能是优于 React 的。如果你对此表示怀疑,请继续阅读。我们会解释为...

GUI的最终选择 Tkinter(九):事件

Tkinter事件处理 Tkinter应用会花费大部分的时间在处理事件循环中(通过mainloop()方法进入),事件可以是触发的鼠标,键盘的操作,管理窗口触发的重绘事件(在多数情况下都是有用户间接引起的)。 Tkinter提供了一个强大的机制,可以让你自由的去处理事件,对于每个组件来说。可以通过bond()方法将函数或者方法绑定到具体的事件上。当触发器的...

用css画图标

css3的属性 transform(转换) 用途很广泛,功能也很强大,为了熟悉它的各种转换方式(平移 translate,旋转 rotate,扭曲 skew,放缩 scale),我做了一些平常常用的一些简单的图标。 这些图标很多是通过三角形来拼贴起来的,所以我们需要知道怎么样画三角形。 1. 我们要将该 div 的 width 和 height 都设置为...

qt 5 小练习 纯代码制作自定义按钮

大家都知道QT设计师中直接拖动的按钮是长方形带有圆角的图案,那我们如何来设置自定义按钮呢 要设计一个按钮,我们必须要知道按钮有什么属性,首先,按钮必须有一个位置 第二,按钮必须有一个名称。还有当我们点击按钮时他会做出什么样的反应。所以我们定义两个类, 一个QRect _rect; (或者QPoint 更为贴切吧) 第二个是 QString _text; 既...

CSS3实现10种Loading效果(转)

CSS3实现10种Loading效果 原文地址:http://www.cnblogs.com/jr1993/p/4622039.html 昨晚用CSS3实现了几种常见的Loading效果,虽然很简单,但还是分享一下,顺便也当是做做笔记…… 第1种效果: 代码如下: <div class="loading"> <sp...