firefox中css如何把图片变成灰色

html-css016

firefox中css如何把图片变成灰色,第1张

您好!很高兴为您答疑。

filter滤镜属性不是标准的w3c标准,故火狐未予支持,也就暂时无法实现您所需要的样式。

如果对我们的回答存在任何疑问,欢迎继续问询。

1、CSS Filter

使用CSS过滤器属性可能是最简单的方法把图像变成灰度。以往,IE浏览器有一个专有的CSS属性称为过滤应用自定义效果包括灰度。

现在,过滤器属性是CSS3规范的一部分,并支持在一些浏览器,Firefox、Chrome和Safari。以前,我们也提到Webkit过滤器,它不仅将图像变成灰色也可以变成褐色和模糊效果。

添加如下CSS样式可以将图像变成灰色

代码如下:

img {

-webkit-filter: grayscale(1)/* Webkit */

filter:gray/* IE6-9 */

filter: grayscale(1)/* W3C */

}

支持IE6-9和Webkit浏览器(Chrome 18+, Safari 6.0+, and Opera 15+)

(注意:这段代码在Firefox上无效果。)

2、Javascript

第二种方法是通过使用JavaScript技术上应该支持所有JavaScript的浏览器,包括IE6以下

代码来自Ajax Blender.

代码如下:

varimgObj = document.getElementById('js-image')

functiongray(imgObj) {

varcanvas = document.createElement('canvas')

varcanvasContext = canvas.getContext('2d')

varimgW = imgObj.width

varimgH = imgObj.height

canvas.width = imgW

canvas.height = imgH

canvasContext.drawImage(imgObj, 0, 0)

varimgPixels = canvasContext.getImageData(0, 0, imgW, imgH)

for(vary = 0y <imgPixels.heighty++){

for(varx = 0x <imgPixels.widthx++){

vari = (y * 4) * imgPixels.width + x * 4

varavg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3

imgPixels.data[i] = avg

imgPixels.data[i + 1] = avg

imgPixels.data[i + 2] = avg

}

}

canvasContext.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height)

returncanvas.toDataURL()

}

imgObj.src = gray(imgObj)

3、SVG

第三种方法来自SVG Filter.,你需要创建一个SVG文件,并将以下代码写在里面,保存命名为***.svg

代码如下:

<svgxm .w3.org/2000/svg">

<filterid="grayscale">

<feColorMatrixtype="matrix"values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"/>

</filter>

</svg>

然后利用过滤器的属性,我们可以通过SVG文件中的元素的ID连接SVG文件

[code]

img {

filter:url('img/gray.svg#grayscale')

}

如何设置网页全部灰色显示

爱刷s0147 | 浏览 109 次

我有更好的答案

发布于2013-11-08 22:36最佳答案

<script language=JavaScript

document.body.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(GrayScale=1)"

</script

方法二:把网页变成灰色显示的最简单的代码是在head之间加入如下代码:

<style type="text/css"

html {FILTER: gray}</style方法三:把网页变成灰色显示的另外一种方法是在head之间加入如下代码:

<style type="text/css"<!--BODY {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)}--</style方法四:如果你的网站已经有CSS文件,那么只需要加入如下代码即可:

html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)}

方法五:我比较推荐这种做法,在CSS文件中加入如下代码即可:

html{filter:gray()}

html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)}

方法六:如果网站的CSS中已有BODY{},那么直接加入如下代码即可:

filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)比如:BODY {font-size: 12pxmargin: 0pxcoclor: #000background: #fff

filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)}

在运用以上方法进行网页更改的时候,可能会遇到以下的问题,具体的解决方法仅供参考: