深入理解CSS径向渐变radial-gradient

×

目录

[1]定义 [2]椭圆圆心 [3]椭圆类型 [4]椭圆大小 [5]色标 [6]重复渐变 [7]其他

前面的话

  上篇介绍了线性渐变,本文接着介绍径向渐变的内容

定义

  径向渐变,实际上就是椭圆渐变,圆只是一种特殊的椭圆而已。径向渐变从圆心点以椭圆形状向外扩散,渐变的实现由两部分组成:椭圆和色标。椭圆部分用来控制径向渐变的位置、大小和形状等。而色标部分包含一个颜色值和一个位置,用来控制渐变的颜色变化。

  [注意]safari4-5、IOS3.2-4.3、android2.1-3只支持线性渐变,且需要添加-webkit-;safari5.1-6、IOS5.1-6.1、android4-4.3支持线性和径向渐变,且需要添加-webkit-;IE10+及其他高版本浏览器支持标准写法

//标准写法
radial-gradient([[<shape>||<size>]?[at <position>,]?<color-stop>[,<color-stop>]+)
//-webkit-老版本径向渐变的写法
-webkit-radial-gradient([<position>||<angle>,]? [<shape>||<size>,]>?<color-stop>[,<color-stop>]+)

椭圆

  径向渐变方式主要由<position>、<shape>、<size>这三个参数影响,分别控制椭圆的圆心、形状和大小。

position

   定义渐变的圆心,默认是center center

<position>: x轴 y轴
x轴:<length> | <percentage> | left | center | right
y轴:<length> | <percentage> | top | center | bottom

  [注意]和线性渐变类似,旧版本-webkit-内核浏览器并不支持at <position>的写法,只支持<position>的写法

【1】关键字

x轴
    left: 0% center: 50% right: 100%
y轴
    top: 0% center: 50% bottom: 100%

【2】数值

  x轴数值表示在x轴上离0点(渐变框左上角)的偏移量;y轴数值表示在y轴上离0点的偏移量

【3】百分比

  其中x轴的百分比相对于渐变框的宽度,而y轴的百分比相对于渐变框的高度。渐变框的宽高由background-size决定

【4】单个值

  当只有一个值时,默认第二个值为center

shape

  定义渐变的形状是圆circle或椭圆ellipse。默认是椭圆

<shape>: circle | ellipse

size

  定义渐变的大小。默认是farthest-corner

【1】关键字

<size>: closest-side | closest-corner | farthest-side | farthest-corner
closest-side:半径为从圆心到最近边
closest-corner:半径为从圆心到最近角
farthest-side:半径为从圆心到最远边
farthest-side:半径为从圆心到最远角

//左上为最近角,右上为最近边;左下为最远角,右下为最远边

【2】圆

  如果<shape>是circle,则<size>可以设置为<length>,表示直径,0%表示圆心,100%表示距离圆心为半径的点

  [注意]不能为负值也不可以设置百分比

  [注意]webkit内核浏览器支持使用CSS设置圆的<length>型的<size>,但并不支持javascript改变其值;对于safari浏览器来说,只有半径写在circle关键字前面才识别

//以下DEMO只有IE10+及firefox可以正常运行

【3】椭圆

  如果<shape>是ellipse或不设置时,则<size>可以设置为<length>或<percentage>,第一个值表示水平直径,第二个值表示垂直直径。百分比相对于径向渐变容器的尺寸

  [注意]若只有一个值,则表示水平和垂直直径相同,因为圆是特殊的椭圆,所以一个值时不可以为百分比

  [注意]和圆类似,<size>值不能为负值,因为其表示的是直径

  [重要]由于webkit浏览器在使用circle或ellipse关键字时渲染不正常,所以若使用circle时,可以不写shape(默认为ellipse),用水平和垂直直径相同的椭圆替代

色标

  与线性渐变的色标相同的部分不再重复,这里只说明不同的部分。由于位置处于100%的色标有时并不会占满渐变区域,则浏览器会默认使用最后一个色标的颜色铺满渐变区域

<color-stop> = <color> [ <percentage> | <length> ]?

重复渐变

  重复渐变可以实现径向渐变的重复效果,使色标在椭圆方向上无限重复,实现一些特殊的效果

  [注意]只有当首尾两颜色位置不在0%或100%时,重复渐变才生效

background-image: -webkit-repeating-radial-gradient(blue 20%,green 50%);
background-image: repeating-radial-gradient(blue 20%,green 50%);

其他

  关于线性渐变的多背景应用场景,径向渐变与之类似。但径向渐变无法实现IE兼容。

时间: 2024-11-05 23:30:03

深入理解CSS径向渐变radial-gradient的相关文章

纯css径向渐变(CSS3--Gradient)

渐变 一.CSS3的径向渐变 效果图网址:http://www.spritecow.com 图像拼接技术 CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变). html代码: 1 <h1>Hold the front page</h1> 2 <p>Now you get the nitty-gritty of the story.</p> 3 <p>The most importa

深入理解CSS线性渐变linear-gradient

× 目录 [1]定义 [2]渐变线 [3]色标 [4]重复渐变 [5]多背景 [6]应用场景 [7]IE兼容 前面的话 在CSS3出现之前,渐变效果只能通过图形软件设计图片来实现,可拓展性差,还影响性能.如今已经进入CSS3标准的渐变可以很轻松的完成渐变效果.渐变实际上分为线性渐变和径向渐变两种,本文介绍线性渐变. 定义 渐变实际上是两种或多种颜色之间的平滑过渡.而线性渐变是多种颜色沿着一条直线(称为渐变线)过渡.渐变的实现由两部分组成:渐变线和色标.渐变线用来控制发生渐变的方向:色标包含一个颜

css 径向渐变

.example { width: 150px; height: 80px; 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); /* Fire

css3 径向渐变

/* 径向渐变 */div.radial { width: 600px; height: 400px; margin: 30px auto; border: 1px #f00 solid; background-image: -webkit-gradient(radial,50% 50%,0, 50% 50%,100,from(green), to(purple),color-stop(50%,red),color-stop(80%,yellow));} <!-- 径向渐变 --><di

CSS3之径向渐变

径向渐变(radial gradients):从起点到终点颜色从内而外沿进行圆形渐变. 语法 background:radial-gradient(center,shape size,start-color,……,last-color); 径向渐变-设置形状 语法: background:radial-gradient(shape,start-color,……,last-color); 说明: shape值可以取两个 circle——圆形 ellipse——椭圆(默认) 径向渐变-尺寸大小关键字

CSS实现兼容性的渐变背景(gradient)效果

一.有点俗态的开场白 要是两年前,实现“兼容性的渐变效果”这个说法估计不会被提出来的,那个时候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但是,在对CSS3支持日趋完善的今天,实现兼容性的渐变背景效果已经完全成为可能,本文就将展示如何实现兼容性的渐变背景效果.在众多的浏览器中,目前不支持Opera浏览器. 本文实例效果都是同样的效果,就是垂直渐变,起始颜色红色,结束颜色蓝色,结束的蓝色的透明度是0.5. 二.IE浏览器下的渐变背景 IE浏览器下渐变背景的使用需要使用IE的渐变

CSS3 径向渐变(radial-gradient)

上篇文章介绍了 CSS3 线性渐变(linear-gradient),这篇文章向大家介绍 radial-gradient(径向渐变)以及重复渐变(线性重复.径向重复).在以前,渐变效果和阴影.圆角效果一样都是做成图片,现在 CSS3 可以直接编写  CSS 代码来实现. CSS3 径向渐变和线性渐变是很相似的,我们首先来看其语法: .代码   -moz-radial-gradient([<bg-position> || <angle>,]? [<shape> || &l

css3 线性渐变和径向渐变

线性渐变:ie6以下不兼容 径向渐变:只支持firefox.Chrome和Safari <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8" /> <title>Background Color</title> <style ty

CSS3渐变——径向渐变

上节在<再说CSS3渐变——线性渐变>和大家一起学习了CSS3 Gradient中径向渐变最新语法(称得上是W3C的标准语法)相关知识以及其基本使用.今天我们在这一篇中主要和大家一起来了解渐变中的径向渐变新语法以及其基本使用. CSS3径向渐变 CSS3径向渐变是圆形或椭圆形渐变.颜色不再沿着一条直线轴变化,而是从一个起点朝所有方向混合.但相对线性渐变要比径向渐变复杂的多. 一.径向渐变的语法 CSS3的径向渐变已得到众多浏览器引擎的支持,只不过其语法的版本根据不同的引擎浏览器,其语法也不一样