今天给大家介绍如何用CSS3实现颜色渐变的按钮,并且在鼠标划过时变色,这按钮在UI设计中非常常用。

CSS3颜色渐变按钮 鼠标划过变色
demodownload
CSS代码
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body{background-color: #1F1F1F;overflow: hidden}
.buttons {
    margin: 10%;
    text-align: center;
}
.btn-hover {
    width: 200px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
    margin: 20px;
    height: 55px;
    text-align:center;
    border: none;
    background-size: 300% 100%;
    border-radius: 50px;
    moz-transition: all .4s ease-in-out;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
}
.btn-hover:hover {
    background-position: 100% 0;
    moz-transition: all .4s ease-in-out;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
}
.btn-hover:focus {
    outline: none;
}
.btn-hover.color-1 {
    background-image: linear-gradient(to right, #25aae1, #40e495, #30dd8a, #2bb673);
    box-shadow: 0 4px 15px 0 rgba(49, 196, 190, 0.75);
}
HTML代码
<div class=”buttons”>
    <button class=”btn-hover color-1“>BUTTON</button>
</div>
execcodegetcode
代码解释:
1、CSS代码中的 linear-gradient() 函数
linear-gradient() 用于创建一个表示两种或多种颜色线性渐变的图片。
创建一个线性渐变,需要指定两种颜色,还可以实现不同方向(指定为一个角度)的渐变效果,如果不指定方向,默认从上到下渐变。
/* 从上到下,蓝色渐变到红色 */
linear-gradient(blue, red);
 
/* 渐变轴为45度,从蓝色渐变到红色 */
linear-gradient(45deg, blue, red);
 
/* 从右下到左上、从蓝色渐变到红色 */
linear-gradient(to left top, blue, red);
 
/* 从下到上,从蓝色开始渐变、到高度40%位置是绿色渐变开始、最后以红色结束 */
linear-gradient(0deg, blue, green 40%, red);
2、CSS代码中的 box-shadow 属性
box-shadow是把一个或多个下拉阴影添加到框上。该属性是一个用逗号分隔阴影的列表,每个阴影由 2-4 个长度值、一个可选的颜色值和一个可选的 inset 关键字来规定。省略长度的值是 0。
语法:
box-shadow: h-shadow v-shadow blur spread color inset;
| 值 | 说明 | 
|---|---|
| h-shadow | 必需的。水平阴影的位置。允许负值 | 
| v-shadow | 必需的。垂直阴影的位置。允许负值 | 
| blur | 可选。模糊距离 | 
| spread | 可选。阴影的大小 | 
| color | 可选。阴影的颜色。 | 
| inset | 可选。从外层的阴影(开始时)改变阴影内侧阴影 | 
