详解CSS3渐变

渐变,指形状或颜色的有规律性的变化,往往可以给人很强的节奏感和审美情趣,这里研究的主要是颜色的渐变。渐变的形式在日常生活中很常见,在网页中的用的也很多,传统网页技术中往往用图片来实现渐变,容易带来加载负担和动态定制的瓶颈。

CSS3提供了实现渐变的属性,随着浏览器的逐步支持,研究CSS3渐变已势在必行。涉及CSS渐变的属性主要有linear-gradient、radial-gradient、repeating-linear-gradient、repeating-radial-gradient四个属性,下面来分别解析下,也可以直接看案例

一、linear-gradient线性渐变

1.兼容性

现在最新的浏览器开始逐渐的支持线性渐变属性,并且趋向统一,兼容性表格参见caniuse.com

可见,对于最新的浏览器而言,使用-webkit-前缀和标准属性即可实现。但是为了兼容性旧浏览器起见,建议使用全前缀。

在sublime text3中可以使用lg(#0f0,#00f)可以生成以下代码,最佳的渐变书写方法。

[css] view
plain
copy

  1. background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0f0), to(#00f));          /*for Safari 4+, Chrome 2+*/
  2. background-image: -webkit-linear-gradient(#0f0, #00f);                                  /*for Safari 5.1+, Chrome 10+*/
  3. background-image: -moz-linear-gradient(#0f0, #00f);                                     /*for firefox*/
  4. background-image: -o-linear-gradient(#0f0, #00f);                                       /*for opera*/
  5. background-image: linear-gradient(#0f0, #00f);                                          /*标准属性*/

2.语法

1. 可选参数,设置渐变的形式,可以有两种方式,一种是设置旋转的角度,一种是使用关键字。

角度值,0度代表水平从左到右,90度代表垂直从下到上,从0度开始逆时针角度变换。

关键字,left代表从左到右的渐变,top代表从上到下的渐变,right代表从右到左,bottom代表从上到下;left top代表从左上到右下的渐变,left bottom代表从左下到右上的渐变,right top代表从右上到左下,right bottom代表从右下到左上。

2.设置第一个颜色点,渐变开始的颜色。

3.可选参数,设置中间颜色点

4.可选参数,设置中间颜色的位置

5.设置结束点颜色

一个线性渐变至少需要制定两个颜色值。

二、Radial Gradients-径向渐变

1.兼容性,径向渐变和线性渐变的兼容性是一致的,最新浏览器的兼容需要实现-webkit和标准两种写法。

2.语法

1.可选参数,设置渐变的中心,60px 45px指距离左侧60px距离上部45px,单位可以是像素,也可以是百分比,也可是关键字。默认为中心位置。

2.可选参数,渐变的形状,可以取值为circle或eclipse,默认值为eclipse。

3.可循参数,渐变的大小,可以取值为

closest-side:
指定径向渐变的半径长度为从圆心到离圆心最近的边
closest-corner:
指定径向渐变的半径长度为从圆心到离圆心最近的角
farthest-side:
指定径向渐变的半径长度为从圆心到离圆心最远的边
farthest-corner:
指定径向渐变的半径长度为从圆心到离圆心最远的角
contain:
包含,指定径向渐变的半径长度为从圆心到离圆心最近的点。类同于closest-side
cover:
覆盖,指定径向渐变的半径长度为从圆心到离圆心最远的点。类同于farthest-corner4.起始颜色。

5.中间颜色。6.中间颜色位置。可选。

7.终点颜色。

三、案例

重点解析下案例9,实现步骤和最终效果如下图所示。

[css] view
plain
copy

  1. #demo9{
  2. background-color: #026873;
  3. background-size: 13px, 29px, 37px, 53px;
  4. background-image: linear-gradient(90deg, rgba(255,255,255,.07) 50%, transparent 50%);
  5. }

[css] view
plain
copy

  1. #demo9{
  2. background-color: #026873;
  3. background-size: 13px, 29px, 37px, 53px;
  4. background-image:
  5. linear-gradient(90deg, rgba(255,255,255,.07) 50%, transparent 50%),
  6. linear-gradient(90deg, rgba(255,255,255,.13) 50%, transparent 50%);
  7. }

四、延伸阅读

w3 css-images-3

gradient

CSS3渐变,前端开发whqet,做最好的前端开发blog。

前端开发whqet,关注前端开发技术 分享网页相关资源。

时间: 2025-01-04 21:27:59

详解CSS3渐变的相关文章

详解css3 pointer-events(阻止hover、active、onclick等触发事件来

pointer-events 更像是JavaScript,它能够: 阻止用户的点击动作产生任何效果 阻止缺省鼠标指针的显示 阻止CSS里的 hover 和 active 状态的变化触发事件 阻止JavaScript点击动作触发的事件 实际代码使用中案例: 1.提交页面,提交按钮点击后,添加这个样式属性(style="pointer-events"),来防止重复提交. @camnpr 2.一些层的绝对定位,覆盖按钮,穿透可以点击它.等等. 来看下具体用法: pointer-events:

如何制作css3的3d动画——以骰子旋转为例,详解css3动画属性

首先先来看两个用css3实现的炫酷的3d动画效果 1 2 3 4 5 6 你没看错,这个炫酷的效果都是用css3实现的. 下面是动画实现所需要用到的几个css3属性. 1.perspective:用来实现一个3d的场景 写3D效果的第一步是要创建一个3D场景,即索要实现效果的模块.这里用到了 perspective 属性和 perspective-origin 属性. perspective:用来定义3d动画距离浏览器的距离,单位是(px). perspective-origin:效果渲染的视角

详解css3弹性盒模型(Flexbox)(转)

今天刚学了css3的弹性盒模型,这是一个可以让你告别浮动.完美实现垂直水平居中的新特性. Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flexbox布局的主体思想是似的元素可以改变大小以适应可用空间,当可用空间变大,Flex元素将伸展大小以填充可用空间,当Flex元素超出可用空间时将自动缩小.总之,Flex元素是可以让你的布局根据浏览器的大小变化进行自动伸缩. 创建Flex容器 flexbox布局首先需要创建一个flex容器.为此给元素设置display属性的值

web前端入门到实战:详解css3如何给背景图片加颜色遮罩

前段时间在开发中,遇到需要给背景层加颜色遮罩的项目,现在特定总结一下给背景图层加颜色遮罩的方法. 方法一:通过定位叠加(注意层级) <div class="wrap1"> <div class="inner"> </div> </div> .wrap1 { position: relative; width: 1200px; height: 400px; background: rgba(0, 0, 0, .5); }

详解css3如何给背景图片加颜色遮罩

前段时间在开发中,遇到需要给背景层加颜色遮罩的项目,现在特定总结一下给背景图层加颜色遮罩的方法. 方法一:通过定位叠加(注意层级) <div class="wrap1"> <div class="inner"> </div> </div> .wrap1 { position: relative; width: 1200px; height: 400px; background: rgba(0, 0, 0, .5); }

第97天:CSS3渐变和过渡详解

一.渐变 渐变是CSS3当中比较丰富多彩的一个特性,通过渐变我们可以实现许多炫丽的效果,有效的减少图片的使用数量,并且具有很强的适应性和可扩展性. 可分为线性渐变.径向渐变 1. 线性渐变 (gradient 变化) linear-gradient线性渐变指沿着某条直线朝一个方向产生渐变效果. linear-gradient:方向,起始颜色,终止颜色 方向:to left/ to right / to top 1 <!DOCTYPE html> 2 <html lang="en

css3径向渐变详解-遁地龙卷风

(-1)写在前面 我用的是chrome49,如果你用的不是.可以尝试换下浏览器前缀.IE在这方面的实现又特例独行了.不想提及…,这篇是为后续做准备. (0)快速使用 background-image:-webkit-linear-gradient(red,blue); 或者 background-image: -webkit-gradient(linear,center top,center bottom,from(#ace),to(#f96)); (1)环境准备 #lol { width:30

css3渐变详解

今天总结渐变的问题,渐变分为线性渐变.径向渐变.呼呼,废话少说, 线性渐变:background:linear-gradient(设置渐变形式,第一个颜色起点,中间颜色点 中间颜色的位置,结束点颜色); Linear:渐变的类型(线性渐变): 渐变的形式:可选参数 有两种方式-1.设置旋转角度,0度代表水平从左到右,90度就是从上到下啦,从0度开始逆时针变换. 2.使用关键字,left代表从左到右,top代表从上到下,同理right就是从右到左,lefttop-从坐上到右下,同理leftbott

CSS3 中border-image详解

CSS3 border-image详解.应用及jQuery插件 一.border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人.可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持border-image.所以,就本文而言,IE浏览器可以回家休息了,Firefox3及其以下以及Opera浏览器也可以休息去看<阿凡达>了.所以,本文提供的一些demo页面,要在Firefox3.5+,