为什么网站变灰的代码放html标记上有效,放CSS里无效呢?

时间:2021-07-20 07:06:25
html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}
这行代码,放在CSS里,网站不会变灰,完全无效。

如果直接在页面代码里写
<!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" style="filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);">

这样就有效了。有人知道为什么吗?

另外问下,html {filter:gray}与前面那句有什么区别?我试了这两个竟然效果是一样的。

最后,用了filter后网页变得很慢,特别是拉动滚动条时,明显有卡感。为啥呢?

13 个解决方案

#1


不要用这个了
直接用body {filter:gray;} 
html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);} 
这个在W3C标准下才有效!!
用body {filter:gray;}这个就好了

#2


加个选择符就好了,只不过速度可能会慢一些
* { filter:gray }

#3


除非放html标记上,放CSS里两种方式都试了,无效。更新了缓存的

#4


放body上背景图片不会变灰

#5


html,body {filter:gray;}

#6


第一步,在页面的<head>与</head>之间加下如下CSS滤镜 
<style> 
.gray *{filter: Gray;} 

</style> 
------------ 
第二步:指定<body ....>样式. 
<body class="gray"> 

第三步:指定flash层样式,加入:*{filter: Gray;} 

#7


引用 5 楼 chinmo 的回复:
html,body {filter:gray;}


没效果

#8


定是你什么地方写的不对了。
html, body {height: 100%; max-height:100%; filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}
参见:
http://topic.csdn.net/u/ui/styles/default/topic.css
http://topic.csdn.net/u/ui/styles/base.css

#9


第一步,在页面的 <head>与 </head>之间加下如下CSS滤镜  
<style>  
.gray *{filter: Gray;}  

</style>  
------------  
第二步:指定 <body ....>样式.  
<body class="gray">  

第三步:指定flash层样式,加入:*{filter: Gray;} 

有一些网站FLASH动画的颜色不能被CSS滤镜控制,可以在FLASH代码的<object …>和</object>之间插入: 

<param value="false" name="menu"/>
<param value="opaque" name="wmode"/>
这些是完全可以正常的!

#10



标准不一样,当然就有不支持的了。

可以用

html,body,p,div,form{filter:gray;color:gray;} 

在IE里是支持的。

#11


引用 7 楼 myr_2002 的回复:
引用 5 楼 chinmo 的回复:
html,body {filter:gray;} 
 

没效果

汗!我的所有都有效果!!我们公司旗下所有网占都使用的这个

#12


直接用body {filter:gray;} 

#13


需要引用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

对于代码放在CSS或HTML里都是一样的。一定得要加上面的。

#1


不要用这个了
直接用body {filter:gray;} 
html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);} 
这个在W3C标准下才有效!!
用body {filter:gray;}这个就好了

#2


加个选择符就好了,只不过速度可能会慢一些
* { filter:gray }

#3


除非放html标记上,放CSS里两种方式都试了,无效。更新了缓存的

#4


放body上背景图片不会变灰

#5


html,body {filter:gray;}

#6


第一步,在页面的<head>与</head>之间加下如下CSS滤镜 
<style> 
.gray *{filter: Gray;} 

</style> 
------------ 
第二步:指定<body ....>样式. 
<body class="gray"> 

第三步:指定flash层样式,加入:*{filter: Gray;} 

#7


引用 5 楼 chinmo 的回复:
html,body {filter:gray;}


没效果

#8


定是你什么地方写的不对了。
html, body {height: 100%; max-height:100%; filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}
参见:
http://topic.csdn.net/u/ui/styles/default/topic.css
http://topic.csdn.net/u/ui/styles/base.css

#9


第一步,在页面的 <head>与 </head>之间加下如下CSS滤镜  
<style>  
.gray *{filter: Gray;}  

</style>  
------------  
第二步:指定 <body ....>样式.  
<body class="gray">  

第三步:指定flash层样式,加入:*{filter: Gray;} 

有一些网站FLASH动画的颜色不能被CSS滤镜控制,可以在FLASH代码的<object …>和</object>之间插入: 

<param value="false" name="menu"/>
<param value="opaque" name="wmode"/>
这些是完全可以正常的!

#10



标准不一样,当然就有不支持的了。

可以用

html,body,p,div,form{filter:gray;color:gray;} 

在IE里是支持的。

#11


引用 7 楼 myr_2002 的回复:
引用 5 楼 chinmo 的回复:
html,body {filter:gray;} 
 

没效果

汗!我的所有都有效果!!我们公司旗下所有网占都使用的这个

#12


直接用body {filter:gray;} 

#13


需要引用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

对于代码放在CSS或HTML里都是一样的。一定得要加上面的。