CSS3径向渐变(radial-gradient)

本文详细介绍了CSS3中的径向渐变特性,包括不同浏览器下的兼容写法、属性参数解析、圆心定位方法及多色渐变的实现方式,并提供了实际应用场景。

1.各浏览器下渐变语法:

这里写图片描述

1.Webkit引擎的CSS3线性渐变语法与属性参数:

-webkit-gradient([<type>],[<position> || <angle>,]?[<shape> ||<size>,]?<color-stop>,<color-stop>[,<color-stop>]*);   //老式语法书写规则

-webkit-radial-gradient([<position> || <angle>,]?[<shape> || <size>,]?<color-stop>,<color-stop>[,<color-stop>]*);   //新式语法

2.Gecko引擎的CSS3线性渐变语法与属性参数:

-moz-radial-gradient([<position> || <angle>,]?[<shape> || <size>,]?<color-stop>,<color-stop>[,<color-stop>]*);  

3.Presto引擎的CSS3线性渐变语法与属性参数:

-o-radial-gradient([<position> || <angle>,]?[<shape> || <size>,]?<color-stop>,<color-stop>[,<color-stop>]*);    

4.Trident引擎的CSS3线性渐变语法与属性参数:

-ms-radial-gradient([<position> || <angle>,]?[<shape> || <size>,]?<color-stop>,<color-stop>[,<color-stop>]*);   

5.W3C标准线性渐变语法与属性参数:

radial-gradient([[<shape> || <size>] [at <position>]?,| at <position>,]?<color-stop>[,<color-stop>]+);  

2.CSS3径向渐变的属性参数:

1. 属性参数position:用来定义径向渐变的圆心位置。默认值”center”

  • length:用长度值指定径向渐变圆心的横坐标或纵坐标。可以为负值。
  • percentage:用百分比指定径向渐变圆心的横坐标或纵坐标。可以为负值。
  • left:设置左边为径向渐变圆心的横坐标值。
  • center:设置中间为径向渐变圆心的横坐标值或纵坐标。
  • right:设置右边为径向渐变圆心的横坐标值。
  • top:设置顶部为径向渐变圆心的纵标值。
  • bottom:设置底部为径向渐变圆心的纵标值。

2. 属性参数shape:定义径向渐变的形状。其主要包括两个值“circle”和“ellipse”.

  • circle:如果size和length大小相等,那么径向渐变是一个圆形,也就是用来指定圆形的径向渐变
  • ellipse:如果size和length大小不相等,那么径向渐变是一个椭圆形,也就是用来指定椭圆形的径向渐变。

3. 属性参数size:主要用来确定径向渐变的结束形状大小。如果省略了,其默认值为“farthest-corner”。可以给其显式的设置一些关键词。

  • closest-side:指定径向渐变的半径长度为从圆心到离圆心最近的边;
  • closest-corner:指定径向渐变的半径长度为从圆心到离圆心最近的角;
  • farthest-side:指定径向渐变的半径长度为从圆心到离圆心最远的边;
  • farthest-corner:指定径向渐变的半径长度为从圆心到离圆心最远的角;

4. 属性参数color-stop:径向渐变线上的停止颜色。

径向渐变的为渐变线从中心点向右扩散。其中0%表示渐变线的起始点,100%表示渐变线的与渐变容器相交结束的位置。而且其颜色停止可以定义一个负值。

3.CSS3线性渐变的基本用法:

1圆形渐变(circle)和椭圆渐变(ellipse):

椭圆渐变:主要半径(水平半径)和次要半径(垂直半径)不相同;

background-image:radial-gradient(ellipse at right,red,green);

圆形渐变:主要半径(水平半径)和次要半径(垂直半径)相同,特殊的椭圆!

background-image:radial-gradient(circle at center center,red,green);

2.渐变圆心定位:(使用关键字或百分比)

  • center / at 50% 50%
  • top / at 50% 0%
  • right / at 100% 50%
  • bottom / at 50% 100%
  • left / at 0% 50%
  • top left / at 0% 0%
  • top right / at 100% 0%
  • bottom right / at 100% 100%
  • bottom left / at 0% 100%

主要是以上各个圆心定位点,看图:

这里写图片描述

3.关键词设置

这里写图片描述

4.多色径向渐变:

background-image:radial-gradient(
            circle at center,
            #f28fb8,
            #e982ad,
            #ec568c);

5.应用:

可以配合字体图标、文字阴影text-shadow、盒阴影box-shadow和多背景制作炫酷圆形突变按钮


总结:主要整理了下CSS3径向渐变在各大浏览器下的兼容写法,属性参数、各个圆心定位点渐变的使用用法以及多色渐变的简要写法!

### 使用 `radial-gradient` 创建径向渐变效果 在 CSS 中,`radial-gradient` 函数用于定义一个径向渐变作为元素的背景图像。该函数允许创建从中心向外扩散的颜色过渡效果。 #### 基本语法结构 径向渐变的基本语法如下: ```css background-image: radial-gradient(shape size at position, color-stop1, color-stop2, ...); ``` - **shape**: 定义形状,默认为椭圆形 (`ellipse`);可以设置为圆形 (`circle`)- **size**: 控制渐变区域大小,支持关键字如 `closest-side`, `farthest-side` 或者具体尺寸值。 - **position**: 渐变起点位置,默认为中心点(`center`),可以通过坐标调整。 - **color-stops**: 颜色停止点列表,至少两个颜色来构成完整的渐变序列[^4]。 #### 示例说明 为了更好地理解如何应用这些参数,这里给出几个具体的例子: ##### 单一简单径向渐变 ```css .radial-simple { width: 200px; height: 200px; background: radial-gradient(circle, red, yellow); } ``` 这段代码设置了宽度和高度均为200像素的一个正方形盒子,并为其指定了由红色到黄色变化的圆形径向渐变背景[^3]。 ##### 复杂多层径向渐变 当希望在一个区域内展示更复杂的视觉效果时,可以在同一个元素上堆叠多个径向渐变。例如: ```css .radial-complex { width: 200px; height: 200px; background: radial-gradient(50px 100px ellipse, transparent 40px, yellow 41px, red 49px, transparent 50px), radial-gradient(30px circle, red, red 29px, transparent 30px); } ``` 此样式规则展示了通过叠加不同参数配置下的两个径向渐变实现了更加丰富的图案设计[^1]。 #### 自定义形状与方向 除了默认选项外,还可以自定义渐变的具体形态及其起始方位。比如想要创建一个位于左上方的小型椭圆渐变,则应这样写: ```css .custom-radial { width: 200px; height: 200px; background: radial-gradient(at top left, blue, green); } ``` 上述实例中,“at top left”明确了渐变是从容器的左上角开始计算的位置偏移量。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值