如何用css设置渐变颜色?

如何用css?下设置渐变颜色面本篇文章给大家介绍一下使用CSS设置渐变颜色的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

以前,你必须使用图像来实现这些效果。但是,通过使用 CSS3 渐变(gradients),你可以减少下载的时间和宽带的使用。此外,渐变效果的元素在放大时看起来效果更好,因为渐变(gradient)是由浏览器生成的。

CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。

CSS3 定义了两种类型的渐变(gradients):

  • 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向

  • 径向渐变(Radial Gradients)- 由它们的中心定义

CSS3 线性渐变

为了创建一个线性渐变,你必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以设置一个起点和一个方向(或一个角度)。

语法:

background-image: linear-gradient(<point> || <angle>, <stop>, <stop> , <stop>)

第一个参数是渐变起始点或角。第二个参数是一种颜色停止点(color stops)。至少需要两种颜色(起点和终点),你可以添加任意种颜色来增加颜色渐变的丰富程度。对颜色停止点的定义可以是一种颜色,或一种颜色加一个百分比。

代码(考虑浏览器兼容性):

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>css背景渐变--线性渐变</title>
<style>
.demo{
    width:500 ;
    height: 300;
    margin: 50px auto;
}
.demo *{
    width: 200px;
    height: 200px;
    margin: 20px;
    text-align: center;
    line-height: 200px;
    color: #fff;
    font-size: 16px;
    float: left;
}
.demo1{
    /* 底色 */
    background-color: #fd0d0d;
    /* chrome 2+, safari 4+; multiple color stops */
    background-image:-webkit-gradient(linear, left bottom,
     left top, color-stop(0.32, #fd0d0d), color-stop(0.66, #d89e3c),
      color-stop(0.83, #97bb51));
      
    /* chrome 10+, safari 5.1+ */
    background-image: -webkit-linear-gradient(#fd0d0d, #d89e3c, #97bb51);
    
    /* firefox; multiple color stops */
    background-image: -moz-linear-gradient(top,#fd0d0d, #d89e3c, #97bb51);
    
    /* ie 6+ */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fd0d0d',
     endColorstr='#d89e3c');
     
    /* ie8 + */
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#fd0d0d',
     endColorstr='#d89e3c')";
     
    /* ie10 */
    background-image: -ms-linear-gradient(#fd0d0d, #d89e3c, #97bb51);
    
    /* opera 11.1 */
    background-image: -o-linear-gradient(#fd0d0d, #d89e3c, #97bb51);
    
    /* 标准写法 */
    background-image: linear-gradient(#fd0d0d, #d89e3c, #97bb51);
}
.demo2{
    /* 底色 */
    background-color:#d41a1a;
    
    /* chrome 2+, safari 4+; multiple color stops */
    background-image:-webkit-gradient(linear, left bottom,
     right top, color-stop(0.32, #d41a1a), color-stop(0.66, #d9e60c),
      color-stop(0.83, #5c7c99));
   
    /* chrome 10+, safari 5.1+ */
    background-image:-webkit-linear-gradient(45deg, #d41a1a, #d9e60c, #5c7c99);
    
    /* firefox; multiple color stops */
    background-image:-moz-linear-gradient(45deg, #d41a1a, #d9e60c, #5c7c99);
    
    /* ie10 */
    background-image: -ms-linear-gradient(45deg, #d41a1a 0%, #d9e60c 100%);
    
    /* opera 11.1 */
    background-image: -o-linear-gradient(45deg, #d41a1a, #d9e60c);
    
    /* 标准写法 */
    background-image: linear-gradient(45deg, #d41a1a, #d9e60c);
 
}
</style>
</head>
<body>
    <div class="demo">
        <div class="demo1">基本线性渐变--自上而下</div>
        <div class="demo2">基本线性渐变--45度角</div>
    </div>
</body>
</html>

效果图:

1.png-600

可以看出两个线性渐变的区别就在于background-image: linear-gradient();里的三个颜色值的第一个颜色值(#fd0d0d)变成了角度值:45deg。

CSS3 径向渐变

css径向颜色渐变(Radial Gradients)跟线性渐变(linear gradients)不一样,它不是沿着一个方向渐变,而是以一个点为中心,向四周辐射渐变,360度的。目前除了IE外的所有浏览器都支持css径向颜色渐变(Radial Gradients),但它们也都有各自不同的语法

为了创建一个径向渐变,你也必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以指定渐变的中心、形状(圆形或椭圆形)、大小。默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)。

语法:

background-image: radial-gradient([<position> || <angle>],[<shape> || <size>],<stop>,
<stop>,<stop>)

代码实例(考虑浏览器兼容性):

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>css背景渐变--径向渐变</title>
<style>
    .demo{
        width:500px ;
        height:200px;
        margin: 50px auto;
    }
    .demo *{
        width:200px ;
        height:200px;
        margin: 50px 15px;
        float: left;
    }
    .demo1{
        background-image: -moz-radial-gradient(#ecff05, red);
        
        background-image: -webkit-gradient(radial, center center, 0, 
        center center, 220, from(#ecff05), to(red)); /* old */
        
        background-image: -webkit-radial-gradient(#ecff05, red); /* new syntax */
        
        background-image: radial-gradient(#ecff05, red);
    }
    .demo2{
        background-image: -moz-radial-gradient(45px 45px 45deg, circle cover,
         #ecff05 0%, orange 100%, red 95%);
         
        background-image: -webkit-radial-gradient(45px 45px, circle cover, #ecff05, red);
        
        background-image: radial-gradient(45px 45px 45deg, circle cover,
         #ecff05 0%, orange 100%, red 95%);
    }
</style>
</head>
<body>
    <div class="demo">
        <div class="demo1"></div>
        <div class="demo2"></div>
    </div>
</body>
</html>

效果图:

2.png-600

更多web前端开发知识,请查阅 HTML中文网 !!

以上就是如何用css设置渐变颜色?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » CSS3 答疑