IE7如何比IE6更好?

时间:2010-05-03 04:40:55

标签: javascript css internet-explorer-6 internet-explorer-7

通常在Web开发社区,您会听到有人抱怨开发IE6。但是,如果您正在使用像jQuery这样强大的JavaScript框架进行开发,那么开发IE6与开发IE7有什么不同?

8 个答案:

答案 0 :(得分:16)

  • 它可以正确显示alpha通道PNG。
  • 箱子尺寸的计算与标准相差不远。
  • 渲染和JavaScript性能实际上允许您做一些花哨的事情,而不会偶尔冻结用户的机器。
  • 已解决了一些安全问题。

与其他浏览器相比,它完全没有任何改进,因为其他浏览器在同一时间取得了更大的进步。它仍然是主流浏览器中最糟糕的,也是开发人员b * tt的痛苦。

答案 1 :(得分:13)

IE7支持png透明度,这对维护网站的图形资源有很大的帮助。

答案 2 :(得分:9)

我将添加一些尚未列出的要点:

  1. CSS宽度严格遵守: IE7符合标准现在模式严格解释CSS中的width样式。在IE6中,如果你有一个width大于父元素的子元素,它通常会忽略父元素的width声明并扩展以适应孩子,通常需要hacks overflow: hidden以确保父母不会扩展

    这主要是一件好事,但不幸的是引入了许多其他的怪癖,例如:将<table style="width: 100%">设置为overflowoverflow: auto的滚动DIV中的scroll会将表格扩展为滚动的DIV 的宽度,包括垂直滚动条的宽度因此,某些表格会被右侧的滚动条切断。

  2. 禁用DirectX过滤器的Cleartype: IE7禁用具有DirectX过滤器(如Alpha透明度和渐变)的元素的cleartype(LCD显示器上的字体平滑)。这在某些方面是好的,因为cleartype使用滤镜制作元素,特别是粗体的元素非常模糊/模糊,但它很糟糕,因为它现在渲染文本块并在LCD上别名。

    IE7我认为现在也支持alpha: 1.0以及filter: alpha(opacity=100)

  3. 已修复SELECT z-index错误: IE7修复了SELECT元素具有无限z-index并始终高于其他元素的错误,除非您放置{{1在IFRAME和要在其上方显示的元素之间。这是菜单等问题。

  4. CSS伪类改进: SELECT以及其他一些类似的CSS状态现在支持超链接。

  5. 性能未必提高: IE7在其VML引擎中引入了许多错误,而在IE8中,VML现在比标准兼容模式下的IE7慢10倍,因此它并不完美。此外,我的测试用例表明,在我的网络应用程序中,在IE7的标准兼容模式下,在鼠标事件中查找:hoveroffsetLeft的速度也会慢大约10倍。

    IE在怪癖模式下虽然在整个IE6,7 + 8中VML和offsetTop的性能大致相同。我在IE7标准兼容模式下的经验实际上比IE6中的标准兼容模式要慢得多,尽管它更符合标准。

    我认为这是一把双刃剑,因为原始JavaScript 性能确实提高了,所以像使用数组方法和for loops这样的事情甚至改善了虽然我认为渲染引擎和许多相关的DOM方法在IE7 +中的标准兼容模式下变得慢得多。

答案 3 :(得分:6)

IMO,IE6和IE7之间存在着天壤之别。

  • IE7支持内置XMLHTTP,而在IE6中则需要ActiveX控件。
  • IE7支持一些额外的伪类
  • IE7修复了z-order和zoom的一些问题。
  • IE7修复了“一些”的盒子模型问题。
  • IE7添加了对>子选择器
  • 的支持
  • IE7增加了对相邻(+)选择器的支持
  • PNG透明度支持

答案 4 :(得分:2)

我认为IE7的大部分改进都是基于性能(javascript)的,并试图接近CSS的标准合规性。

在我的脑海中,这些是我记得的一些重大改进:

  • 修正了双边距错误
  • 修复了盒子模型和定位继承的许多问题
  • 将开发人员工具栏包含在浏览器中(不是错误修复,但对我来说很重要)
  • 正如其他人所说,正确的PNG处理

与IE6进行比较时,它是一个更好的浏览器,当你将它与今天的其他浏览器进行比较时,并没有那么多。

答案 5 :(得分:1)

几乎没有;就IE7在标准符合性方面的收益而言,它可以忽略不计。到目前为止,包括IE8在内的所有Internet Explorer版本在JavaScript,CSS和DOM实现方面都有可怕的中断。您用于IE6的大多数黑客仍然适用于更高版本。然而,从好的方面来看,IE9正在变得相当不错,并取得了很大进展(我从未想过我会这么说)。

规范与Firefox和Chrome等其他浏览器之间的差距和实施差异要小得多。

我建议{IE}有关IE的众多缺陷的Mark Wilton-Jones's文章以获取更多信息。

答案 6 :(得分:1)

Javascript&amp; CSS框架可以最大限度地减少IE6造成的损坏,但仍然存在许多错误。 IE6和其他浏览器之间的不一致。

IE7优于IE6,但仅仅是。

答案 7 :(得分:1)

就个人而言,IE6最令人讨厌的是它缺乏PNG透明度。这导致需要对图像使用AlphaImageLoader。这意味着它引入了自己的错误/无能。例如,使用AlphaImageLoader的透明背景不能重复。

此外,还有一些错误,例如double margin错误,缺少对最小高度和最小宽度的支持,为浮动元素添加额外的换行符,缺少css selectors