按钮图标

炫酷CSS3按钮样式和鼠标滑过特效

阿里云


这是一款集合 20 组不同 CSS3 按钮样式和按钮鼠标滑过特效的插件。这 20 组 css3 按钮每一组都有 3 种示例,每一个示例都使用 CSS3 制作炫酷的鼠标滑过动画。这些按钮适用于各种场合,相信总有一款适合你。这 20 组 CSS3 按钮每一组都有 3 种示例,每一个示例都使用 CSS3 制作炫酷的鼠标滑过动画。这些按钮适用于各种场合,相信总有一款适合你。该按钮插件中使用鼠标 HOVER 来作为按钮动画的触发事件,有一些按钮动画效果更适合于鼠标点击事件,这些都可以十分容易修改和实现。请注意这些按钮动画效果只在最新版本的现代浏览器上工作,(Mobile)Safari 浏览器只支持其中很少的效果。该按钮动画特效中大多数使用的是 CSS transitions,但有一些动画效果也使用 CSS animations 来完成。

HTML 结构

  1. <button class="button button--ujarak">Vote</button>
也想出现在这里?联系我们
创客主机

通用按钮

下面是所有按钮的通用样式:

  1. /* Common button styles */
  2. .button {
  3.   float: left;
  4.   min-width: 150px;
  5.   max-width: 250px;
  6.   display: block;
  7.   margin: 1em;
  8.   padding: 1em 2em;
  9.   border: none;
  10.   background: none;
  11.   color: inherit;
  12.   vertical-align: middle;
  13.   position: relative;
  14.   z-index: 1;
  15. }
  16.  
  17. .button:focus {
  18.   outline: none;
  19. }
  20.  
  21. .button > span {
  22.   vertical-align: middle;
  23. }

在某些按钮效果中,在按钮中添加了一些额外的标签例如一个 span 或几个 span。还有一些效果使用了超链接,在这些效果中需要将 HTML 元素替换为元素,并调整它的样式。下面是按钮的一些控制样式,如:border、border-radius 和尺寸大小。

  1. /* Sizes */
  2. .button--size-s {
  3.   font-size: 14px;
  4. }
  5.  
  6. .button--size-m {
  7.   font-size: 16px;
  8. }
  9.  
  10. .button--size-l {
  11.   font-size: 18px;
  12. }
  13.  
  14. /* Typography and Roundedness */
  15. .button--text-upper {
  16.   letter-spacing: 2px;
  17.   text-transform: uppercase;
  18. }
  19.  
  20. .button--text-thin {
  21.   font-weight: 300;
  22. }
  23.  
  24. .button--text-medium {
  25.   font-weight: 500;
  26. }
  27.  
  28. .button--text-thick {
  29.   font-weight: 600;
  30. }
  31.  
  32. .button--round-s {
  33.   border-radius: 5px;
  34. }
  35.  
  36. .button--round-m {
  37.   border-radius: 15px;
  38. }
  39.  
  40. .button--round-l {
  41.   border-radius: 40px;
  42. }
  43.  
  44. /* Borders */
  45. .button--border-thin {
  46.   border: 1px solid;
  47. }
  48.  
  49. .button--border-medium {
  50.   border: 2px solid;
  51. }
  52.  
  53. .button--border-thick {
  54.   border: 3px solid;
  55. }

注意这些 class 不是对所有的按钮效果都有意义。有些效果依赖于使用元素的伪元素,例如使用伪元素来制作边框动画。

应用举例

下面来看一个"Itzel"效果的例子:Itzel 按钮样式和 CSS3 动画效果,这个效果在按钮的伪元素上使用 clip-path 来剪切掉一部分边框,这个效果只能工作在支持 clip-path 属性的浏览器上,IE 浏览器上看不到效果。要在 Firefox 浏览器中看到效果,需要在 HTML 中使用 SVG 来制作 clipPath。在这个效果中,在按钮中有一个裁剪区域,使用伪元素来将之隐藏起来,隐藏的方法是使用 transform 来将它往下推到按钮的下面,然后在鼠标滑过时使用另外一个 transform 将它推会原来的位置。因为使用了 overflow:hidden,因此在按钮区域外是看不见它的。按钮上的小图标也使用相同的方法来制作。在鼠标滑过的时候,设置文字的透明度为 0,以使文字销售,显示出小图标。

  1. /* Itzel */
  2. .button--itzel {
  3.   border: none;
  4.   padding: 0px;
  5.   overflow: hidden;
  6.   width: 255px;
  7. }
  8.  
  9. .button--itzel::before {
  10.   content: '';
  11.   position: absolute;
  12.   top: 0;
  13.   left: 0;
  14.   width: 100%;
  15.   height: 100%;
  16.   border: 2px solid;
  17.   border-radius: inherit;
  18.   -webkit-clip-path: polygon(0% 0%, 0% 100%, 35% 100%, 35% 60%, 65% 60%, 65% 100%, 100% 100%, 100% 0%);
  19.   clip-path: url(../index.html#clipBox);
  20.   transform: translate3d(0, 100%, 0) translate3d(0, -2px, 0);
  21.   transform-origin: 50% 100%;
  22. }
  23.  
  24. .button--itzel.button--border-thin::before {
  25.   border: 1px solid;
  26.   transform: translate3d(0, 100%, 0) translate3d(0, -1px, 0);
  27. }
  28.  
  29. .button--itzel.button--border-thick::before {
  30.   border: 3px solid;
  31.   transform: translate3d(0, 100%, 0) translate3d(0, -3px, 0);
  32. }
  33.  
  34. .button--itzel::before, 
  35. .button--itzel .button__icon {
  36.   transition: transform 0.3s;
  37.   transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
  38. }
  39.  
  40. .button--itzel .button__icon {
  41.   position: absolute;
  42.   top: 100%;
  43.   left: 50%;
  44.   padding: 20px;
  45.   font-size: 20px;
  46.   transform: translate3d(-50%, 0, 0);
  47. }
  48.  
  49. .button--itzel > span {
  50.   display: block;
  51.   padding: 20px;
  52.   transition: transform 0.3s, opacity 0.3s;
  53.   transition-delay: 0.3s;
  54. }
  55.  
  56. .button--itzel:hover::before {
  57.   transform: translate3d(0, 0, 0);
  58. }
  59.  
  60. .button--itzel:hover .button__icon {
  61.   transition-delay: 0.1s;
  62.   transform: translate3d(-50%, -100%, 0);
  63. }
  64.  
  65. .button--itzel:hover > span {
  66.   opacity: 0;
  67.   transform: translate3d(0, -50%, 0);
  68.   transition-delay: 0s;
  69. }

以上就是这个按钮效果的全部代码。在(Mobile) Safari 浏览器中,这些按钮动画效果会有许多问题,特别是 border-radius 和 overflow hidden 的问题。在这个浏览器中,伪元素视乎不能解析 overflow:hidden(特别是在 transition 的时候)。还有一个 gap 问题,解决方案是使用 -webkit-backface-visibility: hidden。

查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!