1

我在 IE7、Safari、Firefox 和 Chrome 上测试我的页面。

我采用了添加一个类的想法,html以便绝对能够编写自定义 CSS 调整,肯定没有其他方法可以做到这一点。换句话说,我没有滥用这个设施。

我用这个:

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js ie-all lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js ie-all lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js ie-all lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>

您会注意到这是我添加的HTML5Boilerplateie-all方法的修改版本。这样做的原因是,根据标题,我只在 IE7 上进行测试。如果没有类似ie-all课程的东西,我将不得不从其他课程中选择一个进行调整。除了在所有版本的 IE 上进行测试之外,我还能由谁来处理这个问题?

我确实意识到这ie-all相当于lt-ie9目前。我完全希望看到这段代码演变成一个lt-ie10可能会改变事情的类。不确定这里最好的方法是什么。

编辑:

在重新阅读我的问题时,我认为大多数人可能会认为答案是不言而喻的:无法在 IE7 上进行测试并让它在较新版本的 IE 上运行。 我想我应该用上下文来澄清。

在过去的几年里,我一直在这样做,并且没有遇到任何严重的问题。要重复。 我一直在 IE7 上进行测试,我的代码在较新版本的 IE 上运行没有问题。 直到我决定“现代化”我的样板并查看其他想法时,我才意识到,在某些情况下,有些人必须为每个版本的 IE 编写自定义 CSS。

我还没有看到需要为每个版本的 IE 进行调整。我已经浪费了无数个小时来修复 Chrome、Safari 和 Firefox 上不存在的 IE7 问题。当我这样做时,它在其他版本的 IE 上总是可以正常工作。因此,我对 HTML5Boilerplate 进行了修改,并提出了添加一个ie-all类来涵盖这些特殊调整的想法。

除此之外,我现在正在探索更高级的 JQuery UI 想法,我认为这些想法可能不会对仅在 IE7 上进行测试做出很好的反应。

4

3 回答 3

2

如果您使用诱导标准的文档类型编写符合标准的代码并使用渐进增强,那么您会很好。仅这些做法就可以确保您的网站在当今以及过去几年的每个版本的 IE 中都能很好地工作。今天人们在使用 Internet Explorer 时遇到问题的原因(一般来说)是因为他们没有做这些事情中的一件(或多件)。

请记住,Internet Explorer 10 放弃了对条件注释的支持,因此请尝试摆脱这些,而取决于仔细的编码和良好的实践。

为了大大减轻支持跨各种浏览器测试所需的所有必要软件(在某些情况下为硬件)的负担,请查看http://browserstack.com。您可以快速选择操作系统、浏览器和版本,并在几秒钟内启动并在浏览器中运行虚拟机。您甚至可以使用相同的服务来隧道到您的本地服务器/文件系统以测试本地文件。

编码得当且明智,IE 不会像许多人认为的那样痛苦。

于 2012-12-09T03:04:39.597 回答
2

自 IE7 以来,Internet Explorer 发生了巨大的变化,因此您绝对不能测试 7 并假设新版本也能正常工作。IE7 是 2006 年发布的,即使按照当时的标准来看也很差。

除非您想为每个版本创建一个类,否则我会为 <=IE8 创建一个,为 IE9 及更高版本创建一个。

于 2012-12-08T20:07:51.740 回答
1

你可以像我一样编写适用于所有浏览器的代码——从来没有遇到过问题。

您应该始终使用不同的版本进行测试。永远不要认为它会起作用。当我假设 Firefox 不会弄乱内联属性的内容时,我曾经成为这个的牺牲品onClick,但它确实(用“更正确”的 JavaScript 替换它并破坏了其他代码),IE 版本也是如此。

你最好的选择是使用 IE10。在其开发者工具中,您可以在 IE 7 以上的所有版本中进行测试。

于 2012-12-08T20:07:44.597 回答