`
zhouyrt
  • 浏览: 1173741 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用滤镜设置透明导致 IE 6/7/8/9 解析异常

    博客分类:
  • BUG
阅读更多

一段代码:

<div style="width:100px;height:100px;background:gold"></div>

 
用IE开发者工具,或IE8自带的开发者工具。结构如 图1

 

图1

 

 

红色所圈之处可以看到给div添加的内联样式width,height,background都依次排列。正常!

 

但给该div添加filter:alpha(opacity=20)后,

<div style="filter:alpha(opacity=20);width:100px;height:100px;background:gold"></div>
 

情况发生了变化,如 图2

 

 

 

红色所圈之处看到,width和filter挤在一行上了。正常的情况width应该另起一行。

 

有人也许会说这只是开发者工具没有正确显示,只要不影响页面元素正确渲染即可。

 

的确,在IE6/7/8/9 中该元素宽度、高度、背景色及透明度都能按设置所期望的渲染,显示。如下图:

 

 

 

此外,将样式写在style标签内或css文件中也会出现以上现象。

 

 

既然渲染正常,那到底有什么问题呢?

 

稍等...

 

再看下JS设置filter,情况稍有不同。代码如下:

 

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8">
		<title>IE 6/7/8/9 中JS设置filter</title>
	</head>
	<body>
		<div id="d1" style="width:100px;height:100px;background:gold"></div>
		<script type="text/javascript">
			
			var d1 = document.getElementById('d1');
			d1.style.filter = 'alpha(opacity=20)';
			
		</script>
	</body>
</html>
 

IE中查看结构,效果如 图2 ,即filter和width在一行。

 

注意以上html中的最后一句js代码

 

d1.style.filter = 'alpha(opacity=20)';

 

右小括号后没有加分号。现在该句稍改下(的确是稍改,只加了个分号):

 

d1.style.filter = 'alpha(opacity=20);';

 

即在由小括号后加了个 分号 ";" 。 这时查看IE开发者工具如 图3

 

 

 

红色所圈之处看到四个css属性background、filter、height和width单独在一行显示。而没有像 图2 中filter和width在一行显示。

 

 

 

  • 大小: 8.9 KB
  • 大小: 8.9 KB
  • 大小: 376 Bytes
  • 大小: 11.7 KB
分享到:
评论
3 楼 ONEBOYS 2011-01-17  
可以算做ie developer tools的bug吧
2 楼 zhouyrt 2011-01-16  
i_love_sc 写道
filter:alpha(opacity=20);height:100px;background:gold;width:100px;

我把width放在最后面,也是出现width和opacity在一行的情况,很奇怪。


的确。和width的位置无关。

用JS设置filter时建议在右括号后加个分号。目前JQ、EXT、Prototype和Mootools都没有加。
1 楼 i_love_sc 2011-01-16  
filter:alpha(opacity=20);height:100px;background:gold;width:100px;

我把width放在最后面,也是出现width和opacity在一行的情况,很奇怪。

相关推荐

    使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法

    在早期版本的Internet Explorer (IE 6/7/8/9) 中,开发者经常遇到一个与CSS滤镜(filter)相关的解析问题,特别是当尝试设置透明度时。这个问题通常会导致元素的样式在IE的开发者工具中显示不正常,尽管这可能不会...

    IE6/7/8对CSS2/3兼容对比

    在互联网的早期,微软的Internet Explorer(IE)浏览器曾占据主导地位,尤其是IE6、7、8这三代产品。然而,这些版本的IE在支持CSS2和CSS3新特性方面存在许多不足,导致开发者在创建现代网页时面临诸多挑战。这篇文章...

    淘宝SDK模块代码 能兼容ie6ie7ie8以及firefox的css透明滤镜

    这个名为“淘宝SDK模块代码 能兼容ie6ie7ie8以及firefox的css透明滤镜”的资源,旨在解决一个核心问题:如何在不同浏览器间,特别是老旧的Internet Explorer(IE6、IE7、IE8)和Firefox上实现一致的CSS透明效果。...

    IE8优化(模仿IE6)

    6. **PNG透明度支持**:IE6对PNG24位图片的透明度支持不佳,而IE8已经完全支持。如果需要兼容IE6,可能需要使用CSS滤镜或其他方法处理PNG图片。 7. **布局和盒模型**:IE6对盒模型的处理与标准浏览器不同,需要调整...

    IE6, IE7, IE8 CSS 兼容速查表

    在网页设计领域,Internet Explorer(简称IE)的6、7、8版本曾是开发者们面临兼容性问题的主要挑战。这三款浏览器虽然在当时占据了一定的市场份额,但它们对CSS(层叠样式表)的支持程度并不理想,导致开发者需要...

    ie6 png 透明度 解决方法

    PNG是一种优秀的图像格式,尤其适用于需要半透明效果的设计,但IE6只支持8位的PNG图像,而不支持带有alpha通道的24位PNG图像,导致了透明或半透明部分显示为黑色或不透明。这个问题让许多设计师和开发者头痛不已。...

    IE6png透明JS

    总的来说,“IE6png透明JS”是针对IE6浏览器PNG透明问题的一种技术解决方案,它利用JavaScript库和CSS滤镜来模拟或修复透明效果。随着浏览器更新换代,这个问题逐渐被解决,但对于仍然需要支持IE6的开发者来说,这些...

    CSS样式兼容IE6、IE7、IE8、FF火狐浏览器的方法

    - **透明度问题**:IE6和IE7处理透明度的方式与标准CSS不一致,需使用滤镜实现。 - **字体渲染差异**:各版本IE和火狐浏览器在字体渲染上存在细微差别,可能影响文本的清晰度。 #### 火狐浏览器的CSS支持: - 火狐...

    IE6不兼容png透明背景解决方法

    在互联网早期,Internet Explorer 6(简称IE6)是广泛使用的浏览器,但它存在许多兼容性问题,其中之一就是对PNG(Portable Network Graphics)图像格式的透明背景支持不足。PNG是一种先进的位图格式,提供了24位...

    png透明显示IE6

    PNG是一种流行的图像格式,支持丰富的颜色和透明度,但在IE6中,PNG的透明特性并未得到完全支持,导致图片显示为灰色背景或无法透明。 描述中的“背景”进一步明确了问题的核心,即在网页设计中,PNG图片用作背景时...

    div+css 完全兼容 样式兼容性 ie6 ie7 IE8 IE9 和firefox方法

    8. **渐变和透明度**:IE6-8不支持CSS渐变和透明度,可以使用图片或滤镜(如`filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#color', endColorstr='#color')`)作为替代。 9. `display`属性...

    处理ie6下png格式透明效果

    3. **使用PNG8**:如果可能,可以将PNG24转换为PNG8,因为IE6对PNG8的透明性支持良好。但这种方法可能会牺牲颜色深度,不适合需要复杂色彩过渡的图像。 4. **条件注释**:在HTML中使用条件注释,针对IE6单独编写...

    IE6透明解决方案,背景图片透明

    4. **CSS Hack**:由于IE6与其他现代浏览器在解析CSS时的差异,通常需要使用特定的CSS Hack来确保只对IE6应用这些解决方案。例如,可以使用条件注释或者特定的属性前缀,如`*`或`_`: ```css *...

    IE6 png背景图片透明

    在IT领域,尤其是在网页设计和开发中,"IE6 png背景图片透明"是一个经典的问题,因为Internet Explorer 6(简称IE6)对于PNG格式图像的透明处理与其他现代浏览器存在显著差异。PNG是一种流行的图像格式,支持24位...

    IE滤镜操作(关于IE滤镜效果的一般演示,初级滤镜的学习操作,结合了HTML和Javascript,javascript)

    在互联网的早期,微软的Internet Explorer(IE)浏览器引入了一种独特的特性,称为"滤镜",这使得开发者可以通过CSS或JavaScript对网页元素应用特殊视觉效果。这些滤镜主要适用于IE,因为它们不是W3C标准的一部分,...

    PS6_8常用滤镜

    Photoshop CS6是一款深受设计师和图像处理爱好者喜爱的软件,其中滤镜...同时,记得在使用滤镜时,适度调整参数以达到理想效果,避免过度处理导致图像失真。通过实践和实验,每个人都能发掘出这些滤镜的无限可能性。

    PNG图片透明兼容IE6和火狐示例

    5. **CSS使用**:在CSS中,可以使用`background-image`属性设置PNG图片作为背景,同时通过`opacity`或`filter`属性控制透明度,对于IE6需要添加特定的滤镜属性,如`filter:progid:DXImageTransform.Microsoft....

    IE6_IE7_IE8 CSS 兼容速查表

    然而,不同的浏览器对于CSS的支持程度和解析方式可能存在差异,尤其是在早期的浏览器版本,如IE6、IE7和IE8。这些老版本的Internet Explorer浏览器在处理CSS时存在诸多不兼容性问题,给开发者带来了不少困扰。本篇...

    IE6下PNG透明代码

    在早期的Web开发中,IE6(Internet Explorer 6)是一个让开发者头疼的浏览器,尤其在处理PNG(Portable Network Graphics)格式图片时,其对PNG8和PNG24的透明支持并不完善。PNG是一种无损压缩的图像格式,支持透明...

    js_IE6支持png透明解决png_ie6下不透明背景图片

    PNG-24格式允许半透明和全透明效果,但IE6只支持8位的PNG-8,而这种格式最多只能有256种颜色,无法实现半透明。因此,当你在IE6中使用PNG-24格式的图片时,透明部分会显示为完全不透明,即背景色或默认颜色。 为了...

Global site tag (gtag.js) - Google Analytics