请问一下CSS3样式中如何让背景渐变与背景图片共存啊!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下CSS3样式中如何让背景渐变与背景图片共存啊!相关的知识,希望对你有一定的参考价值。

目前,对CSS3支持日趋完善,实现兼容性的渐变背景效果是完全可以的,让背景渐变与背景图片共存的方法很简单,主要要注意的是图片要 保持“最小单元”的准则,选择正确的浏览器,该问题就能得到解决,下面介绍一下具体的解决方法。

1、图片渐变切图时一定要以最小为准则,例如在做垂直方向的纯颜色的渐变时,尝试使用1个像素的竖直图片作为渐变背景“最小单元”。另外,要注意css3虽然支持很多的浏览器的兼容,但是目前不支持Opera浏览器。

2、如果兼容程度允许的话,纯色渐变背景可以使用css3的渐变样式,如background: linear-gradient(left top, red , blue);,如此一来能够减少切图量,还可以加快网页加载速度,缺点是使用主流浏览器的话,就必须要添加前缀。

3、注意对于webkit核心的浏览器,如Chrome/Safari浏览器,在这些浏览器下要做到渐变背景,也需要使用CSS3 渐变方法,css-gradient,具体就是-webkit-gradient,使用语Firefox浏览器业是有一点差异的。

参考技术A css设置图片渐变一般都是保持图片以“最小单元”为准则:
1图片渐变切图的时候是以最小为准则,比如垂直方向的纯颜色渐变可以使用一像素的竖直图片作为渐变背景“最小单元”。

2如果兼容程度允许,纯色渐变背景可以使用css3的渐变样式,如background: linear-gradient(left top, red , blue); 这样可以减少切图量,加快网页加载速度,缺点是不兼容ie8及以下浏览器,主流浏览器需要添加前缀。
背景图片以最小“单元”平铺,是加快网页访问速度的方法之一。
参考技术B background:url(../img/3.png)no-repeat,-webkit-linear-gradient(top, rgba(255,255,0,0.5),rgba(0,255,0,0));本回答被提问者采纳 参考技术C background: url(../img/phone.png) no-repeat , linear-gradient(to bottom, #02070b 0%,#00323c 100%);

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

我找到一个CSS实现背景渐变的例子如下:
<table cellpadding="0" cellspacing="0" width="72%" height="30" border="0">
<tr>
<td width="33%" height="300" style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='0')">1</td>
<td width="33%" height="300" style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='1')">2</td>
<td width="33%" height="300" style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='2')">3</td>
</tr>
</table>

但我发现它是利用了三个表格来实现多种渐变效果的.

请教高手:如何不用图片,只用CSS在<body >标签中(或其它方法)就可以实现这种效果,也就是实现整个网页背景的渐变呢?
请注意这些代码要实现的是3重渐变(共6种颜色)而不是只有1重渐变(2种颜色).

用图片无法总是适合网页:时当屏幕为1024是可以正常显示,但为800像素首先出现背景就很难看,如果是更高的分辨率呢那更难看了.

方法:根据浏览者的分辨率自动调用样式表

1、新建两个样式表分别命名为:1024.css 800.css(当然有更多分辨率,可以增加样式表)

2、在样式表中分别定义好图片作为网页背景。

3、新建一个网页文件,把下面代码复制过去。
<script language="JavaScript">
<!--
function test()
var a=screen.width+".css"
//alert(a)
//测试变量a的值
document.getElementById("eric").href =a;

//-->
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<link href="" rel="stylesheet" type="text/css" id="eric">
</head>

<body onLoad="test()">
</body>
</html>

搞定!
参考技术A 在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>:
用百分比指定起止色位置。
说明:
用线性渐变创建图像。
如果想创建以对角线方式渐变的图像,可以使用 to top left 这样的多关键字方式来实现。
参考技术B //可以用CSS属性linear-gradient,都可以,多种颜色一点问题都没有。
/* Firefox 3.6+ */ 
background: -moz-linear-gradient(left, #ace, #f96, #ace, #f96, #ace); 
/* Safari 4-5, Chrome 1-9 */ 
background: -webkit-gradient(linear, left top, right top, from(#ace), color-stop(0.25, #f96), color-stop(0.5, #ace), color-stop(0.75, #f96), to(#ace)); 
/* Safari 5.1+, Chrome 10+ */ 
background: -webkit-linear-gradient(left, #ace, #f96, #ace, #f96, #ace); 
/* Opera 11.10+ */ 
background: -o-linear-gradient(left, #ace, #f96, #ace, #f96, #ace);


CSS(层叠样式表)级联样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。

参考技术C 你可以将STYLE放在BODY里啊.如下:
<body style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='0')">
</body>

不过,只有IE支持就是了.要想所有浏览器都支持的比较好,建议用图片当背景~
参考技术D 百度知道 > 电脑/数码 > 编程快到期问题
• 为什么 vb反编译时“activex部件不能创建对象”
• 谁有sqlserver关于存储过程讲解的资料?感激!
• 如何在歪酷 嵌入wobox代码
• 求一个键盘捕捉的工具
• 在用数据库技术设计菜单时出现代码:"parameters m.messg m.lineno m.code 是什么意思? "
更多>>

订阅该问题
您想在自己的网站上展示百度“知道”上的问答吗?来获取免费代码吧!
--------------------------------------------------------------------------------
如要投诉或提出意见建议,请到
百度知道投诉吧反馈。 待解决
css如何实现真正的网页渐变背景
悬赏分:200 - 离问题结束还有 14 天 23 小时
我找到一个CSS实现背景渐变的例子如下:
<table cellpadding="0" cellspacing="0" width="72%" height="30" border="0">
<tr>
<td width="33%" height="300" style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='0')">1</td>
<td width="33%" height="300" style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='1')">2</td>
<td width="33%" height="300" style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='2')">3</td>
</tr>
</table>

但我发现它是利用了三个表格来实现多种渐变效果的.

请教高手:如何不用图片,只用CSS在<body >标签中(或其它方法)就可以实现这种效果,也就是实现整个网页背景的渐变呢?
提问者:bbssmmii - 助理 二级

答复共 1 条
你可以将STYLE放在BODY里啊.如下:
<body style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FFFFFF', endColorStr='#3568CC', gradientType='0')">
</body>

不过,只有IE支持就是了.要想所有浏览器都支持的比较好,建议用图片当背景~

以上是关于请问一下CSS3样式中如何让背景渐变与背景图片共存啊!的主要内容,如果未能解决你的问题,请参考以下文章

CSS背景渐变

CSS背景渐变图片问题

第22章 CSS渐变效果

使用背景图像或 CSS3 渐变更好吗? (电话间隙)

CSS3渐变,就是这么玩

css3背景颜色渐变属性