首页 web前端 html教程 CSS3 径向渐变(radial-gradient)_html/css_WEB-ITnose

CSS3 径向渐变(radial-gradient)_html/css_WEB-ITnose

Jun 24, 2016 am 11:58 AM
css3 radial-gradient 渐变

上篇文章介绍了 CSS3 线性渐变(linear-gradient),这篇文章向大家介绍 radial-gradient(径向渐变)以及重复渐变(线性重复、径向重复)。在以前,渐变效果和阴影、圆角效果一样都是做成图片,现在 CSS3 可以直接编写  CSS 代码来实现。

CSS3 径向渐变和线性渐变是很相似的,我们首先来看其语法:

.代码  

  1. -moz-radial-gradient([ || ,]? [ || ,]? [, ]*);  
  2.  -webkit-radial-gradient([ || ,]? [ || ,]? [, ]*);  

 

  除了您已经在线性渐变中看到的起始位置,方向,和颜色,径向梯度允许你指定渐变的形状(圆形或椭圆形)和大小(最近端,最近角,最远端,最远角,包含或覆盖 (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover))。 颜色起止(Color stops):就像用线性渐变,你应该沿着渐变线定义渐变的起止颜色。下面为了更好的理解其具体的用法,我们主要通过不同的示例来对比CSS3径向渐变的具体用法.分享一个最好用的UI前端框架!

  示例一:

.代码  

  1. background: -moz-radial-gradient(#ace, #f96, #1E90FF);  
  2. background: -webkit-radial-gradient(#ace, #f96, #1E90FF);  

 

  效果:

  示例二:

.代码  

  1. background: -moz-radial-gradient(#ace 5%, #f96 25%, #1E90FF 50%);  
  2. background: -webkit-radial-gradient(#ace 5%, #f96 25%, #1E90FF 50%);  

 

  效果如下:

  从以上俩个示例的代码中发现,他们起止色想同,但就是示例二定位了些数据,为什么会造成这么大的区别呢?其实在径向渐变中虽然具有相同的起止色,但是在没有设置位置时,其默认颜色为均匀间隔,这一点和我们前面的线性渐变是一样的,但是设置了渐变位置就会按照渐变位置去渐变,这就是我们示例一和示例的区别之处:虽然圆具有相同的起止颜色,但在示例一为默认的颜色间隔均匀的渐变,而示例二每种颜色都有特定的位置。分享一个最好用的UI前端框架!

  示例三:

.代码  

  1. background: -moz-radial-gradient(bottom left, circle, #ace, #f96, #1E90FF);  
  2. background: -webkit-radial-gradient(bottom left, circle, #ace, #f96, #1E90FF);  

 

  效果如下:

  示例四:

.代码  

  1. background: -moz-radial-gradient(bottom left, ellipse, #ace, #f96, #1E90FF);  
  2. background: -webkit-radial-gradient(bottom left, ellipse, #ace, #f96, #1E90FF);  

 

  效果如下:

  示例三和示例四我们从效果中就可以看出,其形状不一样,示例三程圆形而示例四程椭圆形状,也是就是说他们存在形状上的差异。然而我们在回到两个示例的代码中,显然在示例三中设置其形状为 circle,而在示例四中 ellipse,换而言之在径向渐变中,我们是可以设置其形状的。

  示例五:

.代码  

  1. background: -moz-radial-gradient(ellipse closest-side, #ace, #f96 10%, #1E90FF 50%, #f96);  
  2. background: -webkit-radial-gradient(ellipse closest-side, #ace, #f96 10%, #1E90FF 50%, #f96);  

 

  效果如下:

  示例六:

.代码  

  1. background: -moz-radial-gradient(ellipse farthest-corner, #ace, #f96 10%, #1E90FF 50%, #f96);  
  2. background: -webkit-radial-gradient(ellipse farthest-corner, #ace, #f96 10%, #1E90FF 50%, #f96);  

 

  效果如下:

  从示例五和示例六中的代码中我们可以清楚知道,在示例五中我人应用了closest-side而在示例六中我们应用了farthest-corner。这样我们可以知道在径向渐变中我们还可以为其设置大小(Size):size的不同选项(closest-side, closest-corner, farthest-side, farthest-corner, contain or cover)指向被用来定义圆或椭圆大小的点。 示例:椭圆的近边VS远角 下面的两个椭圆有不同的大小。示例五是由从起始点(center)到近边的距离设定的,而示例六是由从起始点到远角的的距离决定的。分享一个最好用的UI前端框架!

  示例七:

.代码  

  1. background: -moz-radial-gradient(circle closest-side, #ace, #f96 10%, #1E90FF 50%, #f96);  
  2. background: -webkit-radial-gradient(circle closest-side, #ace, #f96 10%, #1E90FF 50%, #f96);  

 

  效果如下:

  示例八:

 

  效果如下:

  示例七和示例八主要演示了圆的近边VS远边 ,示例七的圆的渐变大小由起始点(center)到近边的距离决定,而示例八的圆则有起始点到远边的距离决定。

  示例九:

.代码  

  1. background: -moz-radial-gradient(#ace, #f96, #1E90FF);  
  2. background: -webkit-radial-gradient(#ace, #f96, #1E90FF);  

 

  效果如下:

  示例十:

.代码  

  1. background: -moz-radial-gradient(contain, #ace, #f96, #1E90FF);  
  2. background: -webkit-radial-gradient(contain, #ace, #f96, #1E90FF);  

 

  效果如下:

  示例九和示例十演示了包含圆 。在这里你可以看到示例九的默认圈,同一渐变版本,但是被包含的示例十的圆。分享一个最好用的UI前端框架!

  最后我们在来看两个实例一个是应用了中心定位和full sized,如下所示:

.代码  

  1. /* Firefox 3.6+ */  
  2.  background: -moz-radial-gradient(circle, #ace, #f96);  
  3.  /* Safari 4-5, Chrome 1-9 */  
  4.  /* Can't specify a percentage size? Laaaaaame. */  
  5.  background: -webkit-gradient(radial, center center, 0, center center, 460, from(#ace), to(#f96));  
  6.  /* Safari 5.1+, Chrome 10+ */  
  7.  background: -webkit-radial-gradient(circle, #ace, #f96);  

 

  效果如下:

  下面这个实例应用的是Positioned, Sized,请看代码和效果:

.代码  

  1. /* Firefox 3.6+ */  
  2. /* -moz-radial-gradient( [ || ,]? [ || ,]? , [, ]* ) */  
  3. background: -moz-radial-gradient(80% 20%, closest-corner, #ace, #f96);  
  4. /* Safari 4-5, Chrome 1-9 */  
  5. background: -webkit-gradient(radial, 80% 20%, 0, 80% 40%, 100, from(#ace), to(#f96));  
  6. /* Safari 5.1+, Chrome 10+ */  
  7. background: -webkit-radial-gradient(80% 20%, closest-corner, #ace, #f96);  

 

  效果如下:

  到此关于 CSS3 的两种渐变方式我们都介绍完了。再浪费大家一点时间,我们看看CSS3 重复渐变(Repeating Gradient)的应用。

  如果您想重复一个渐变,您可以使用-moz-repeating-linear-gradient(重复线性渐变)和-moz-repeating-radial-gradient(重复径向渐变)。 在下面的例子,每个实例都指定了两个起止颜色,并无限重复。 分享一个最好用的UI前端框架!

.代码  

  1. background: -moz-repeating-radial-gradient(#ace, #ace 5px, #f96 5px, #f96 10px);  
  2. background: -webkit-repeating-radial-gradient(#ace, #ace 5px, #f96 5px, #f96 10px);  
  3. background: -moz-repeating-linear-gradient(top left -45deg, #ace, #ace 5px, #f96 5px, #f96 10px);  
  4. background: -webkit-repeating-linear-gradient(top left -45deg, #ace, #ace 5px, #f96 5px, #f96 10px);  

 

  效果:

  有关于CSS3渐变的东西就完了,大家看完了肯定会想,他主要用在哪些方面呢?这个说起来就多了,最简单的就是制作背景,我们还可以应用其制作一些漂亮的按钮,还可以用他来制作patterns,我在这里列出几种制作patterns的示例代码吧:

  HTML代码:

.代码  

    •   
  1.    
  2.   
  3.    
  4.   
  5.    
  6.   
  7.    
  8.   
  9.    
  10.   
  11.    
  12.   
  13.   

 

  CSS 代码:

.代码  

  1. ul {  
  2.   overflow: hidden;  
  3.   margin-top: 20px;  
  4. }  
  5. li{  
  6.   width: 150px;  
  7.   height: 80px;  
  8.   margin-bottom: 10px;  
  9.   float: left;  
  10.   margin-right: 5px;  
  11.   background: #ace;  
  12.   /*Controls the size*/  
  13.   -webkit-background-size: 20px 20px;  
  14.   -moz-background-size: 20px 20px;  
  15.   background-size: 20px 20px;  
  16. }  
  17.                                
  18. li.gradient1 {  
  19.   background-image: -webkit-gradient(  
  20.     linear,  
  21.     0 100%, 100% 0,  
  22.     color-stop(.25, rgba(255, 255, 255, .2)),  
  23.     color-stop(.25, transparent),  
  24.     color-stop(.5, transparent),  
  25.     color-stop(.5, rgba(255, 255, 255, .2)),  
  26.     color-stop(.75, rgba(255, 255, 255, .2)),  
  27.     color-stop(.75, transparent),  
  28.     to(transparent)  
  29.     );  
  30.   background-image: -moz-linear-gradient(  
  31.     45deg,  
  32.     rgba(255, 255, 255, .2) 25%,  
  33.     transparent 25%,  
  34.     transparent 50%,  
  35.     rgba(255, 255, 255, .2) 50%,  
  36.     rgba(255, 255, 255, .2) 75%,  
  37.     transparent 75%,  
  38.     transparent  
  39.     );  
  40.   background-image: -o-linear-gradient(  
  41.     45deg,  
  42.     rgba(255, 255, 255, .2) 25%,  
  43.     transparent 25%,  
  44.     transparent 50%,  
  45.     rgba(255, 255, 255, .2) 50%,  
  46.     rgba(255, 255, 255, .2) 75%,  
  47.     transparent 75%,  
  48.     transparent  
  49.   );  
  50.   background-image: linear-gradient(  
  51.     45deg,  
  52.     rgba(255, 255, 255, .2) 25%,  
  53.     transparent 25%,  
  54.     transparent 50%,  
  55.     gba(255, 255, 255, .2) 50%,  
  56.     rgba(255, 255, 255, .2) 75%,  
  57.     transparent 75%,  
  58.     transparent  
  59.     );  
  60. }  
  61.                            
  62. li.gradient2 {  
  63.    background-image: -webkit-gradient(linear, 0 0, 100% 100%,  
  64.       color-stop(.25, rgba(255, 255, 255, .2)), color-stop(.25, transparent),  
  65.       color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .2)),  
  66.       color-stop(.75, rgba(255, 255, 255, .2)), color-stop(.75, transparent),  
  67.       to(transparent));  
  68.    background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,  
  69.       transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,  
  70.       transparent 75%, transparent);  
  71.    background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,  
  72.       transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,  
  73.       transparent 75%, transparent);  
  74.    background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,  
  75.       transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,  
  76.       transparent 75%, transparent);  
  77. }  
  78.                                
  79. li.gradient3 {  
  80.   background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));  
  81.   background-image: -moz-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent);  
  82.   background-image: -o-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent);  
  83.   background-image: linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent);  
  84. }  
  85.                                
  86. li.gradient4 {  
  87.   background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));  
  88.   background-image: -moz-linear-gradient(0deg, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent);  
  89.   background-image: -o-linear-gradient(0deg, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent);  
  90.   background-image: linear-gradient(0deg, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent);  
  91. }  
  92.                                
  93. li.gradient5 {  
  94.   background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, #555), color-stop(.25, transparent), to(transparent)),  
  95.       -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, #555), color-stop(.25, transparent), to(transparent)),  
  96.       -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.75, transparent), color-stop(.75, #555)),  
  97.       -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.75, transparent), color-stop(.75, #555));  
  98.   background-image: -moz-linear-gradient(45deg, #555 25%, transparent 25%, transparent),  
  99.      -moz-linear-gradient(-45deg, #555 25%, transparent 25%, transparent),  
  100.      -moz-linear-gradient(45deg, transparent 75%, #555 75%),  
  101.      -moz-linear-gradient(-45deg, transparent 75%, #555 75%);  
  102.   background-image: -o-linear-gradient(45deg, #555 25%, transparent 25%, transparent),  
  103.      -o-linear-gradient(-45deg, #555 25%, transparent 25%, transparent),  
  104.      -o-linear-gradient(45deg, transparent 75%, #555 75%),  
  105.      -o-linear-gradient(-45deg, transparent 75%, #555 75%);  
  106.   background-image: linear-gradient(45deg, #555 25%, transparent 25%, transparent),  
  107.     linear-gradient(-45deg, #555 25%, transparent 25%, transparent),  
  108.     linear-gradient(45deg, transparent 75%, #555 75%),  
  109.     linear-gradient(-45deg, transparent 75%, #555 75%);  
  110. }  
  111.                                
  112. li.gradient6 {  
  113.   background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, transparent), color-stop(.5, rgba(200, 0, 0, .5)), to(rgba(200, 0, 0, .5))),  
  114.      -webkit-gradient(linear, 0 0, 100% 0, color-stop(.5, transparent), color-stop(.5, rgba(200, 0, 0, .5)), to(rgba(200, 0, 0, .5)));  
  115.   background-image: -moz-linear-gradient(transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)),  
  116.      -moz-linear-gradient(0deg, transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5));  
  117.   background-image: -o-linear-gradient(transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)),  
  118.      -o-linear-gradient(0deg, transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5));  
  119.   background-image: linear-gradient(transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)),  
  120.      linear-gradient(0deg, transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5));  
  121. }  

 

  效果:分享一个最好用的UI前端框架!

  不错的效果吧,当然感兴趣的朋友可以到这里学习制作更多的不同效果。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
纯CSS3怎么实现波浪效果?(代码示例) 纯CSS3怎么实现波浪效果?(代码示例) Jun 28, 2022 pm 01:39 PM

纯CSS3怎么实现波浪效果?本篇文章就来给大家介绍一下使用 SVG 和 CSS 动画制作波浪效果的方法,希望对大家有所帮助!

巧用CSS实现各种奇形怪状按钮(附代码) 巧用CSS实现各种奇形怪状按钮(附代码) Jul 19, 2022 am 11:28 AM

本篇文章带大家看看怎么使用 CSS 轻松实现高频出现的各类奇形怪状按钮,希望对大家有所帮助!

css怎么隐藏元素但不占空间 css怎么隐藏元素但不占空间 Jun 01, 2022 pm 07:15 PM

两种方法:1、利用display属性,只需给元素添加“display:none;”样式即可。2、利用position和top属性设置元素绝对定位来隐藏元素,只需给元素添加“position:absolute;top:-9999px;”样式。

实例详解CSS渐变锯齿问题如何解决! 实例详解CSS渐变锯齿问题如何解决! Nov 25, 2022 pm 04:43 PM

本篇文章给大家介绍一下如何解决在使用渐变图形产生的锯齿问题,所谓CSS渐变锯齿消失术,你会了就能搞定,下面就带大家一起来看看怎么实现吧~希望对大家有所帮助!

css3怎么实现花边边框 css3怎么实现花边边框 Sep 16, 2022 pm 07:11 PM

在css中,可以利用border-image属性来实现花边边框。border-image属性可以使用图片来创建边框,即给边框加上背景图片,只需要将背景图片指定为花边样式即可;语法“border-image: url(图片路径) 向内偏移值 图像边界宽度 outset 是否重复;”。

css3如何实现鼠标点击图片放大 css3如何实现鼠标点击图片放大 Apr 25, 2022 pm 04:52 PM

实现方法:1、使用“:active”选择器选中鼠标点击图片的状态;2、使用transform属性和scale()函数实现图片放大效果,语法“img:active {transform: scale(x轴放大倍数,y轴放大倍数);}”。

原来利用纯CSS也能实现文字轮播与图片轮播! 原来利用纯CSS也能实现文字轮播与图片轮播! Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

css3怎么设置动画旋转速度 css3怎么设置动画旋转速度 Apr 28, 2022 pm 04:32 PM

在css3中,可以利用“animation-timing-function”属性设置动画旋转速度,该属性用于指定动画将如何完成一个周期,设置动画的速度曲线,语法为“元素{animation-timing-function:速度属性值;}”。

See all articles