如何CSS实现网页背景三种颜色渐变效果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何CSS实现网页背景三种颜色渐变效果?相关的知识,希望对你有一定的参考价值。

页面背景颜色渐变可以分为四个部分
一、从上往下渐变:

body
FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ffffff,endColorStr=#000000);


二、从左上至右下渐变:

body
FILTER: Alpha( style=1,opacity=25,finishOpacity=100,
startX=50,finishX= 100,startY=50,finishY=100);
background-color: skyblue;


三、从左往右渐变:

body
FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=1,startColorStr=#ffffff,endColorStr=#000000);


四、从上往下渐变:

style="filter:progid:DXImageTransform.microsoft.gradient(gradienttype=0,startColorStr=blue,endColorStr=white);"


下面是整合的完整格式:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>背景渐变</title>
<style type="text/css">
<!--
body 
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;

-->
</style></head>
<body>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="600" style="filter:progid:DXImageTransform.microsoft.gradient(gradienttype=0,startColorStr=blue,endColorStr=white);">&nbsp;</td>
</tr>
</table>
</body>
</html>


如果是在同一个页面里面显示多重渐变效果,可以定义每个渐变的width和height。

参考技术A 这是区块背景,不是页面的背景,而且中间那个渐变应该是一张图片,而其他的颜色就应该是背景色填充,现虽然css3可以支持多个背景,和很强大的滤镜功能,但目前很多主流浏览器不支持css3所以不可能是单纯的css生存的。 补充: 你不信的话,可以点击查看背景图片。 追问: 图片当然可以轻易实现,可我想知道如何用CSS实现简单的渐变,两种颜色就好,让我知道它的原理和方法。 回答: css实现渐变?只在safari浏览器上有效,别的基本都不支持。我想你应该是想这样子吧,用ps之类的软件做好一个渐变取1-2个像素的宽度保存为一张图片,然后用css写如下的规则。本回答被提问者采纳 参考技术B 在background-image属性中使用linear-gradient()。
background-image:<bg-image> [ , <bg-image> ]
<bg-image> = <image> | none
默认值:none
适用于:所有元素
继承性:无
动画性:否
计算值:指定值
取值:
none:无背景图。
<image>:使用绝对或相对地址指或者创建渐变色来确定图像。

<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+)
<side-or-corner> = [left | right] || [top | bottom]
<color-stop> = <color> [ <length> | <percentage> ]?
取值:
下述值用来表示渐变的方向,可以使用角度或者关键字来设置:
<angle>:
用角度值指定渐变的方向(或角度)。
to left:
设置渐变为从右到左。相当于: 270deg
to right:
设置渐变从左到右。相当于: 90deg
to top:
设置渐变从下到上。相当于: 0deg
to bottom:
设置渐变从上到下。相当于: 180deg。这是默认值,等同于留空不写。
<color-stop> 用于指定渐变的起止颜色:
<color>:
指定颜色。
<length>:
用长度值指定起止色位置。不允许负值
<percentage>:
用百分比指定起止色位置。
参考技术C 如果是用纯css实现的话,ie下用fliter:alpha滤镜,ff和chrome用gradient实现。文章比较多,随便百度就可以了。http://www.zhangxinxu.com/wordpress/2010/04/css%E5%AE%9E%E7%8E%B0%E5%85%BC%E5%AE%B9%E6%80%A7%E7%9A%84%E6%B8%90%E5%8F%98%E8%83%8C%E6%99%AFgradient%E6%95%88%E6%9E%9C/
可以看看张鑫旭大神写的博文。
还有一种方法,竖向渐变的话用ps做一张1px宽、高度很高的三色渐变图,作为背景repeat-x就可以了。不过这种方法不适合于横向渐变,而且对高度也有一定要求。
参考技术D 纯css是静态的不可能实现渐变什么的,必须用javascript或jQuery之类的
我用jQuery
http://www.phpstudy.net/e/tiy/ii.php?q=jquery_effect_toggle_function
这是w3c的那个实例,我也做过现在找不到了,抱歉了

怎么设计css网页背景颜色过渡?

请给出完整代码!谢谢!

CSS实现渐变背景效果兼容主流浏览器
IE浏览器下渐变背景的使用需要使用IE的渐变滤镜filter
对于Firefox浏览器下(Firefox 3.6+)渐变背景的实现需使用CSS3渐变属性 为-moz-linear-gradient属性
对于webkit核心的浏览器,如Chrome/Safari浏览器下渐变背景的实现也是使用CSS3 渐变方法为-webkit-gradient
代码如下:
.gradient
  width:300px;
  height:150px;
  filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);/*IE*/
  -ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);/*IE8*/
  background:red; /* 一些不支持背景渐变的浏览器 */
  background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); /*Firefox*/
  background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5))); /*Chrome/Safari*/
  
<div class="gradient"></div>

参考技术A 如果想做的真正的颜色过渡兼容性比较好,还是切一个宽1像素的图片,做背景,然后平铺效果最好。纯代码实现复杂而且兼容性不是很好。 参考技术B 用一张背景图片,在背景图片中实现过渡效果,然后用CSS添加上去就是了.
如:
body
background: #78BCE8 url(/images/background.gif);
参考技术C .hbar FILTER:progid:DXImageTransform.Microsoft.Gradient(gradientType=1,startColorStr='#25323A',endColorStr='#6E706D');
.vbar FILTER:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr='#25323A',endColorStr='#6E706D');
参考技术D 纯CSS实现,只能用图片代替

以上是关于如何CSS实现网页背景三种颜色渐变效果?的主要内容,如果未能解决你的问题,请参考以下文章

html中如何让背景颜色渐变???

div背景颜色怎样渐变 css实现div层背景颜色渐变代码

使用div+css实现背景颜色渐变,怎么实现呢?

Shader Forge 实现颜色渐变、透明度渐变效果

css如何实现真正的网页渐变背景

css3背景颜色渐变啥颜色好