zoukankan      html  css  js  c++  java
  • [HTML] CSS 渐变

    CSS3 渐变

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

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

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

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

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


    浏览器支持

    表中的数字指定了完全支持该属性的第一个浏览器版本。

    后边跟 -webkit-、-moz- 或 -o- 的数字指定了需加上前缀才能支持属性的第一个版本。

    属性
    linear-gradient 10.0 26.0
    10.0 -webkit-
    16.0
    3.6 -moz-
    6.1
    5.1 -webkit-
    12.1
    11.1 -o-
    radial-gradient 10.0 26.0
    10.0 -webkit-
    16.0
    3.6 -moz-
    6.1
    5.1 -webkit-
    12.1
    11.6 -o-
    repeating-linear-gradient 10.0 26.0
    10.0 -webkit-
    16.0
    3.6 -moz-
    6.1
    5.1 -webkit-
    12.1
    11.1 -o-
    repeating-radial-gradient 10.0 26.0
    10.0 -webkit-
    16.0
    3.6 -moz-
    6.1
    5.1 -webkit-
    12.1
    11.6 -o-

    CSS3 线性渐变

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

    线性渐变的实例:

    线性渐变

    语法

    background: linear-gradient(direction, color-stop1, color-stop2, ...);

    线性渐变 - 从上到下(默认情况下)

    下面的实例演示了从顶部开始的线性渐变。起点是红色,慢慢过渡到蓝色:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 200px;
        background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(red, blue); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <h3>线性渐变 - 从上到下</h3>
    <p>从顶部开始的线性渐变。起点是红色,慢慢过渡到蓝色:</p>
    
    <div id="grad1"></div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    线性渐变 - 从左到右

    下面的实例演示了从左边开始的线性渐变。起点是红色,慢慢过渡到蓝色:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 200px;
        background: -webkit-linear-gradient(left, red , blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(right, red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(right, red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(to right, red , blue); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <h3>线性渐变 - 从左到右</h3>
    <p>从左边开始的线性渐变。起点是红色,慢慢过渡到蓝色:</p>
    
    <div id="grad1"></div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    线性渐变 - 对角

    你可以通过指定水平和垂直的起始位置来制作一个对角渐变。

    下面的实例演示了从左上角开始(到右下角)的线性渐变。起点是红色,慢慢过渡到蓝色:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 200px;
        background: -webkit-linear-gradient(left top, red , blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(bottom right, red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(bottom right, red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(to bottom right, red , blue); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <h3>线性渐变 - 对角</h3>
    <p>从左上角开始(到右下角)的线性渐变。起点是红色,慢慢过渡到蓝色:</p>
    
    <div id="grad1"></div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    使用角度

    如果你想要在渐变的方向上做更多的控制,你可以定义一个角度,而不用预定义方向(to bottom、to top、to right、to left、to bottom right,等等)。

    语法

    background: linear-gradient(angle, color-stop1, color-stop2);

    角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。

    但是,请注意很多浏览器(Chrome,Safari,fiefox等)的使用了旧的标准,即 0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。换算公式 90 - x = y 其中 x 为标准角度,y为非标准角度。

    下面的实例演示了如何在线性渐变上使用角度:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 100px;
        background: -webkit-linear-gradient(0deg, red, blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(0deg, red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(0deg, red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(0deg, red, blue); /* 标准的语法(必须放在最后) */
    }
    
    #grad2 {
        height: 100px;
        background: -webkit-linear-gradient(90deg, red, blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(90deg, red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(90deg, red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(90deg, red, blue); /* 标准的语法(必须放在最后) */
    }
    
    #grad3 {
        height: 100px;
        background: -webkit-linear-gradient(180deg, red, blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(180deg, red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(180deg, red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(180deg, red, blue); /* 标准的语法(必须放在最后) */
    }
    
    #grad4 {
        height: 100px;
        background: -webkit-linear-gradient(-90deg, red, blue); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(-90deg, red, blue); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(-90deg, red, blue); /* Firefox 3.6 - 15 */
        background: linear-gradient(-90deg, red, blue); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <h3>线性渐变 - 使用不同的角度</h3>
    <div id="grad1" style="color:white;text-align:center;">0deg</div><br>
    <div id="grad2" style="color:white;text-align:center;">90deg</div><br>
    <div id="grad3" style="color:white;text-align:center;">180deg</div><br>
    <div id="grad4" style="color:white;text-align:center;">-90deg</div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    下面的实例演示了如何创建一个带有彩虹颜色和文本的线性渐变:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 55px;
        background: -webkit-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet); /* Firefox 3.6 - 15 */
        background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <div id="grad1" style="text-align:center;margin:auto;color:#888888;font-size:40px;font-weight:bold">
    渐变背景
    </div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    使用透明度(Transparency)

    CSS3 渐变也支持透明度(transparency),可用于创建减弱变淡的效果。

    为了添加透明度,我们使用 rgba() 函数来定义颜色结点。rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。

    下面的实例演示了从左边开始的线性渐变。起点是完全透明,慢慢过渡到完全不透明的红色:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 200px;
        background: -webkit-linear-gradient(left, rgba(255,0,0,0), rgba(255,0,0,1)); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(right, rgba(255,0,0,0), rgba(255,0,0,1)); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(right, rgba(255,0,0,0), rgba(255,0,0,1)); /* Firefox 3.6 - 15 */
        background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <h3>线性渐变 - 透明度</h3>
    <p>为了添加透明度,我们使用 rgba() 函数来定义颜色结点。rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。</p>
    
    <div id="grad1"></div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    重复的线性渐变

    repeating-linear-gradient() 函数用于重复线性渐变:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>W3Cschool教程(w3cschool.cn)</title> 
    <style>
    #grad1 {
        height: 200px;
        background: -webkit-repeating-linear-gradient(red, yellow 10%, green 20%); /* Safari 5.1 - 6.0 */
        background: -o-repeating-linear-gradient(red, yellow 10%, green 20%); /* Opera 11.1 - 12.0 */
        background: -moz-repeating-linear-gradient(red, yellow 10%, green 20%); /* Firefox 3.6 - 15 */
        background: repeating-linear-gradient(red, yellow 10%, green 20%); /* 标准的语法(必须放在最后) */
    }
    </style>
    </head>
    <body>
    
    <h3>重复的线性渐变</h3>
    
    <div id="grad1"></div>
    
    <p><strong>注意:</strong> Internet Explorer 9 及之前的版本不支持渐变。</p>
    
    </body>
    </html>

    CSS3 径向渐变

    径向渐变由它的中心定义。

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

    径向渐变的实例:

    Radial gradient

    语法

    background: radial-gradient(center, shape size, start-color, ..., last-color);

    径向渐变 - 颜色结点均匀分布(默认情况下)

    #grad {
      background: -webkit-radial-gradient(red, green, blue); /* Safari 5.1 - 6.0 */
      background: -o-radial-gradient(red, green, blue); /* Opera 11.6 - 12.0 */
      background: -moz-radial-gradient(red, green, blue); /* Firefox 3.6 - 15 */
      background: radial-gradient(red, green, blue); /* 标准的语法 */
    }

    径向渐变 - 颜色结点不均匀分布

    #grad {
      background: -webkit-radial-gradient(red 5%, green 15%, blue 60%); /* Safari 5.1 - 6.0 */
      background: -o-radial-gradient(red 5%, green 15%, blue 60%); /* Opera 11.6 - 12.0 */
      background: -moz-radial-gradient(red 5%, green 15%, blue 60%); /* Firefox 3.6 - 15 */
      background: radial-gradient(red 5%, green 15%, blue 60%); /* 标准的语法 */
    }

    设置形状

    shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。

    #grad {
      background: -webkit-radial-gradient(circle, red, yellow, green); /* Safari 5.1 - 6.0 */
      background: -o-radial-gradient(circle, red, yellow, green); /* Opera 11.6 - 12.0 */
      background: -moz-radial-gradient(circle, red, yellow, green); /* Firefox 3.6 - 15 */
      background: radial-gradient(circle, red, yellow, green); /* 标准的语法 */
    }

    不同尺寸大小关键字的使用

    size 参数定义了渐变的大小。它可以是以下四个值:

    • closest-side

    • farthest-side

    • closest-corner

    • farthest-corner             

    #grad1 {
      /* Safari 5.1 - 6.0 */
      background: -webkit-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
      /* Opera 11.6 - 12.0 */
     background: -o-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
     /* Firefox 3.6 - 15 */
      background: -moz-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
      /* 标准的语法 */
     background: radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
    }
    
    #grad2 {
     /* Safari 5.1 - 6.0 */
      background: -webkit-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
     /* Opera 11.6 - 12.0 */
      background: -o-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
      /* Firefox 3.6 - 15 */
     background: -moz-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
     /* 标准的语法 */
      background: radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
    }

    重复的径向渐变

    repeating-radial-gradient() 函数用于重复径向渐变:

    #grad {
      /* Safari 5.1 - 6.0 */
      background: -webkit-repeating-radial-gradient(red, yellow 10%, green 15%);
      /* Opera 11.6 - 12.0 */
      background: -o-repeating-radial-gradient(red, yellow 10%, green 15%);
      /* Firefox 3.6 - 15 */
      background: -moz-repeating-radial-gradient(red, yellow 10%, green 15%);
      /* 标准的语法 */
      background: repeating-radial-gradient(red, yellow 10%, green 15%);
    }
  • 相关阅读:
    自然语言交流系统 phxnet团队 创新实训 项目博客 (十一)
    install ubuntu on Android mobile phone
    Mac OS, Mac OSX 与Darwin
    About darwin OS
    自然语言交流系统 phxnet团队 创新实训 项目博客 (十)
    Linux下编译安装qemu和libvirt
    libvirt(virsh命令总结)
    深入浅出 kvm qemu libvirt
    自然语言交流系统 phxnet团队 创新实训 项目博客 (九)
    自然语言交流系统 phxnet团队 创新实训 项目博客 (八)
  • 原文地址:https://www.cnblogs.com/frost-yen/p/5787382.html
Copyright © 2011-2022 走看看