当前位置:  开发笔记 > 编程语言 > 正文

你如何处理Internet Explorer?

如何解决《你如何处理InternetExplorer?》经验,为你挑选了7个好方法。

我知道关于这个主题可能还有其他问题.我想每个Web开发人员都会通过IE浏览器.


我的问题:

我正在开发完全基于Javascript的基于Web的应用程序.我是Mac用户.我非常高兴在Safari,Firefox和Opera中一切都很棒.然后我问一位有Windows的朋友用Internet Explorer检查它,事情也不行.我的应用程序对HTML标准非常敏感.

主要问题是CSS布局.由于jQuery的可移植性,JavaScript本身似乎正常工作.


我的问题:

你如何处理Internet Explorer?我应该创建一个仅在Internet Explorer上加载的新CSS吗?我应该仅为Internet Explorer创建应用程序的新版本吗?你通常如何处理这个?该应用程序在功能设计和布局设计方面都非常重要.


编辑:

使用Nosredna建议的CSS重置,已经删除了几乎一半的问题.我想这确实是一个很好的做法.我注意到SO也使用它.



1> Nosredna..:

您是否指定了有效的doctype?通过将Internet Explorer切换到标准模式,可以使Internet Explorer更加合规.http://msdn.microsoft.com/en-us/library/bb250395.aspx#cssenhancements_topic2

你使用浏览器重置CSS文件?这有助于将版本整合在一起.http://meyerweb.com/eric/tools/css/reset/

请注意IE的CSS错误:http://www.positioniseverything.net/explorer.html

对于布局的骨架,请考虑使用已知可行的标记,例如http://matthewjamestaylor.com/blog/perfect-multi-column-liquid-layouts或http://960.gs/用于液体或固定布局分别.

跟上浏览器之间的JavaScript差异.jQuery处理其中的一些,但不是全部.http://www.impressivewebs.com/7-javascript-differences-between-firefox-ie/

是的,IE是一种痛苦.如果你想让它在IE中工作,你真的想每隔几天在IE中测试一次.你不想在最后挽救痛苦 - 你想一次一个地处理噩梦.


顺便说一句,如果您认为IE很痛苦,请尝试使用手机查看您的页面.有一天,我带着iPhone去了REI.com,屏幕的中间五分之一或更多被一堆乱码标记所占据,这些标记呈现为文本.


doctype info:http://msdn.microsoft.com/en-us/library/bb250395.aspx#cssenhancements_topic2 one css reset(有很多):http://meyerweb.com/eric/tools/css/reset/

2> phenry..:

有条件的评论.





  

在IE文件中,您可以使用@import导入normal.css,然后根据需要覆盖样式.


加载时间可能更快,首先简单地链接normal.css和任何地方,然后在其下面是其他浏览器的条件注释,必要时覆盖.

3> Matt Brunmei..:

首先,我不要等到项目完成后才考虑浏览器兼容性.

大多数情况下,CSS问题都有办法,不需要加载特定于浏览器的样式表,因此我尝试尽可能使用这些解决方案.例如 - 如果您的大多数问题都与盒子模型问题有关,那么使用嵌套div替代填充等内容可以帮助确保所有内容看起来都正确,而不需要针对不同浏览器的单独样式表和模板.



4> PartialOrder..:

浏览器重置启动.尽可能平衡比赛场地并取消浏览器默认设置.从头开始构建CSS.(见:http://meyerweb.com/eric/thoughts/2007/04/12/reset-styles/)

在开发过程中尽早测试所有主流浏览器.

尝试尽可能地完成没有浏览器特定的黑客攻击.有时您需要在某些特定于浏览器的CSS中工作,但它应该验证(使用W3C验证工具).有时虽然没有任何东西可以用它,但有条件的(甚至可能是一些JavaScript),例如修复IE6中的透明PNG(参见:http://nettuts.com/videos/screencasts/5-easy-ways-to-tackle- ie6s-transparency-issues /).

如果您无法在其中一台开发机器上运行IE,请尝试http://browsershots.org.至少你可以通过这种方式得到一些反馈.

使用debug.css突出显示或概述div和其他元素.如果在开发期间需要,请将其放入HTML头部.这可能是一个巨大的帮助.

使用"开发人员工具栏"(IE,Firefox).

预计IE将成为痛苦,并在6,7和8中进行测试.

玩得开心!



5> Sander Marec..:

首先,阅读On Having Layout,它解释了IE渲染引擎如何在内部工作.IE的渲染引擎来自CSS之前.它没有像你期望的那样正确区分内联和块元素.相反,在IE中一个元素hasLayout.或不.这是99%的IE CSS漏洞的来源.所以,阅读那篇文章几次.

至于修复,我通常使用条件注释.几个原因:

它们是未来的证明,而不是CSS黑客攻击.如果IE9修复了黑客而不是你用它来解决的错误怎么办?

这是有效的(X)HTML(条件评论只是对其他人的简单评论)

它不需要javascript.你会惊讶于有多少人关闭了javascript.

关于条件评论的一句话:永远不要使用开放式比赛.也就是说,永远不要做这样的事情:



原因和黑客一样:让它成为未来的证明.如果IE的下一个版本修复了该错误并且您不再需要修复该怎么办?或者更糟糕的是,"修复"现在实际上会在新的IE版本中弄乱你的布局?通常最好假设IE的下一个版本修复了您正在解决的错误.当IE 8出现时,我已经写了一些关于它的内容.



6> Bryan Rehbei..:

这是我如何减少处理IE的痛苦:

    使用reset.css - Yahoo! YUI重置或Eric Meyer的重置CSS

    小心漂浮,清除 - 它们通常会引起很多诅咒.

    请注意IE中的hasLayout错误,通常添加缩放:1或高度属性有助于解决此问题.继续阅读布局.

    获得在Firefox,Safari,Chrome等中运行的布局,同时保持IE大约80%的方式.

    如果需要,使用条件注释实现IE6.css样式和IE7.css样式.

    啤酒,白酒或其他成人饮料.



7> JoshFinnie..:

我认为为IE编写一个特定的css文件是可以的.我知道这是一个痛苦,但由于一些可能的问题,IE6看起来不同于所有其他browswers.

将此行用于新创建的css文件:

 

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有