IE7如何比IE6更好?

Rau*_*ait 15 javascript css internet-explorer-7 internet-explorer-6

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

sel*_*oup 16

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

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


Igo*_*aka 13

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


cry*_*ryo 9

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

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

    这实际上是一件好事,但不幸的是引入了许多其他的怪癖,例如<table style="width: 100%">overflow设置为CSS的滚动DIV 中overflow: autoscroll将表扩展到滚动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,并且总是高于其他元素,除非你把它IFRAME放在SELECT你想要显示在它上面的元素之间.这是菜单等的问题.

  4. CSS伪类改进: :hover现在支持超链接之外的一些其他类似的CSS状态.

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

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

    我认为这是一把双刃剑,因为原始的JavaScript性能确实提高了,所以使用数组方法和for循环的事情确实有所改善,尽管我认为渲染引擎和许多相关的DOM方法变得更慢了IE7 +中的标准合规模式.


Tho*_*mas 6

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

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