今天我给大家介绍一下如何使用CSS3来制作一个圆角阴影、渐变色的漂亮的按钮,它不需要任何图片和javascript脚本,只需要CSS3就可以轻松实现按钮效果,并且可以适用于任意HTML元素,想div,span,p,a,button,input等等。

这些纯CSS代码制作的按钮大小可以根据字体大小自动调整,渐变色背景可以兼容各浏览器,并且有正常、鼠标滑向、点击三种状态样式,当然,如果您的浏览器不支持CSS3,那么按钮将没有圆角和阴影效果。

CSS3特性

首先我们熟悉下CSS3是如何实现圆角和阴影效果的。

CSS3提供了新的属性如:阴影text-shadow,box-shadow,和圆角border-radius,我们先来看这样一段CSS3代码:

text-shadow01px1pxrgba(0,0,0,.3); 
box-shadow01px2pxrgba(0,0,0,.2); 
-
webkit-box-shadow01px2pxrgba(0,0,0,.2); 
-
moz-box-shadow01px2pxrgba(0,0,0,.2); 

以上代码第一行设置了文字的阴影效果,它的用法结构:X轴偏移量,Y轴偏移量,模糊量,颜色,对于颜色可以使用RGBA模式。

第二行代码设置了边框盒子阴影效果,用法与文字阴影效果一样。

第三行和第四行分别表示在不同浏览器内核下的CSS3用法,-webkit-xxx表示webkit内核,-moz-xxx表示firefox内核。

border-radius用来设置圆角样式,同样有webkit和firefox之分。

border-radius.5em
-
webkit-border-radius.5em/* for Webkit */
-moz-border-radius.5em;  /* for Firefox */

那么如何用CSS3处理渐变色的跨浏览器兼容的问题呢?在css2时代,我们通常会准备一张制作好的渐变背景图片,然后通过background-color来加载背景图片,从而实现背景色渐变效果。而CSS3,只需要区分不同浏览器内核下使用颜色来完成渐变效果。

background#0095cd
/* for Webkit */
background: -webkit-gradient(linearlefttopleftbottomfrom(#00adee), to(#0078a5)); 
/* for Firefox */
background: -moz-linear-gradient(top,  #00adee,  #0078a5); 
/* for IE */
filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee',  
endColorstr='#0078a5'); 

对于webkit内核浏览器,-webkit-gradient(),linear表示渐变类型为线性渐变,left top表示渐变开始位置X轴和Y轴,left bottom表示渐变结束位置X轴和Y轴,from(#00adee), to(#0078a5)表示渐变色从#00adee到#0078a5。

对于firefox内核浏览器,-moz-linear-gradient(top, #00adee, #0078a5)中linear表示渐变类型为线性渐变,top表示渐变开始位置,后面表示两个颜色值的变化。

而对于IE内核,使用filter(滤镜)重庆职业装定做其中startColorstr和endColorstr分别表示开始颜色和结束颜色的变化值。

介绍完上面的CSS3特性,我们现在来使用CSS3制作漂亮的按钮效果。