有什么办法除了javascript来修复IE 6的错误吗?

时间:2009-06-21 16:19:43

标签: css internet-explorer

对于IE 6,我们有很多错误可以让我们成为设计师。

不正确的盒子模型等等。

我通过JavaScript搜索了修复程序并找到了

[link text] [1] IE7.js IE7是一个JavaScript库,使Microsoft Internet Explorer的行为类似于符合标准的浏览器。它解决了许多HTML和CSS问题,并使透明PNG在IE5和IE6下正常工作。

但除了javascript通过css我们有真正的生命保护。

8 个答案:

答案 0 :(得分:3)

替代方案是生活在IE 6的错误世界中,并设计您的页面尽管它们看起来正确。您可以为IE6客户端提供不同的css,如果需要,甚至可以为不同的html提供服务,具体取决于您的设计。在某些情况下,您可以使用一个对IE6客户端来说意味着不同的CSS文件,但这种技术在IE7和8方面存在问题。

答案 1 :(得分:3)

用CSS处理IE6错误的方法?肯定。

请参阅:http://www.quirksmode.org/css/condcom.html 条件评论

还有其他方法,例如在某些CSS属性中添加一些特定字符,这些字符在某些浏览器中被忽略但在其他浏览器中不会被忽略。

但是,在某些情况下,网页设计师在使用这些内容时应该非常谨慎。

答案 2 :(得分:1)

这个链接也很方便

How do you deal with Internet Explorer?

我从来不知道这一点 - 谢谢svinto “除非你的文档类型错误,否则IE6没有错误的盒子模型。 - svinto”

答案 3 :(得分:0)

有一些简单的样式表黑客可以修改各种Internet Explorer版本中的演示文稿来解决您的CSS问题。例如这三个:

IE4,IE5,IE5.5的简化框模型破解:

div.values { margin: 10px; m\argin: 20px; }
对于IE4,IE5,IE5.5和IE6,

明星html hack:

* html div.values { margin: 5px; }
对于IE7,

明星第一个孩子+ html黑客攻击:

*:first-child+html div.values { margin: 5px; }

PNG透明度问题可以通过以下解决方案解决:

<div style="width:50px;height:50px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo/logo.png');">
   <img src="/images/logo/logo.png" height="50" width="50" alt="" style="filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" />
</div>

答案 4 :(得分:0)

到目前为止,有很多信息需要注意的是,IE7.js并不能在所有情况下修复png(至少在最后我看过)。例如,您将无法平铺具有透明度的背景图像。

对于DXImageTransform,您可能会发现当这个应用于包含链接的元素时,这些链接不再是“可点击的”。你有时可以通过给应用了变换的父元素静态定位并定位子锚元素来解决这个问题,例如,

h2{
position:static;
zoom:1;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/images/mypng.png", sizingMethod="scale");
}
h2 a{
position:relative;
}
<h2><a href="" >a link!</a></h2>

如果你必须做这种垃圾,把它放在一个单独的样式表中,并用条件注释控制加载。如果设计有任何复杂性,请尽量不要支持ie6或&lt;。如果你不能避免这样做,请多收费;)。有时这足以说服那些支持ie6的人并不“值得他们同时”。

答案 5 :(得分:0)

为什么不为IE尝试FireBug Light?它没有FireFox FireBug那么强大,但可以提供帮助

答案 6 :(得分:0)

使用条件注释或CSS选择器黑客可以在CSS中解决许多错误。但有一些错误,单独的CSS黑客无法处理,如IE6的.multiple.class.selector.bug

答案 7 :(得分:0)

还有另一个针对IE6风格的快速而肮脏的黑客攻击 例如。

您可以将CSS定义为;

.divTitle {  填充:5px;  宽度:600px;  _width:590px; }

所有其他浏览器选择600px作为宽度值&amp; IE6覆盖它&amp;拿590px;

我在IE7&amp; FF也是如此。

您也可以查看此链接; link text