我正在试图找出IE语句中添加的类(如t-IE9、lt-ie8、t-IE7等)的所有css修补程序的摘要,如Paul爱尔兰的网站:http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/中所示的代码。
如果没有这样的摘要,那么在实际测试浏览器之后,我是否修复了css问题(并添加了我在书籍/在线中遇到的修复)?
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if gt IE 8]><!--> <html class=""> <!--<![endif]-->发布于 2013-09-08 13:58:12
很多时候,你不会(或者不应该)需要IE特定的类。在今天的web中,编写特定浏览器或版本的代码被认为是错误的做法;在大多数情况下,最好是检测是否支持您需要的特性,而不是检查浏览器本身。
这有许多优点;主要的优点是它使您不必了解所有的浏览器特性以及哪些浏览器支持它们。这也意味着,如果有人使用另一个没有给定功能的旧浏览器访问您的站点,您的代码将继续工作。但是,它也有一些优点,可以使您的代码更简洁,并且在将来更容易使用。有一个名为现代派的库,它执行与您引用的代码类似的操作,但是根据浏览器支持的特性添加类。事实上,编写您引用的代码的Paul爱尔兰人也是现代派的首席开发人员。
您可以在http://CanIUse.com或http://QuirksMode.org/css/的不同版本中检查IE对各种特性的支持。CanIUse更适合检查更新的浏览器功能,但是Quirksmode更适合检查基本的CSS特性,因为它有更细粒度的细节。
许多在旧IE版本中缺失的特性可以通过“Poly填充”脚本来实现。例如,http://CSS3Pie.com/是一个脚本,它向旧的IE版本添加了对border-radius、CSS梯度和其他特性的支持。很多时候,最好让浏览器去做它的事情,忽略那些缺失的功能(比如圆角很好,但是如果它们丢失了,站点就不会停止工作),但是如果你发现自己需要某些功能,而且你必须在所有浏览器中支持它们,那么你可以尝试一个好的此处的多填充脚本列表 (顺便说一句,这个列表是由现代派提供的,所以他们应该都能很好地使用它)。
因此,对于旧IE版本中缺少的功能,您不应该需要IE特定的类。
您唯一可能需要的特定于IE的类是用来处理浏览器错误的。
没有一个明确的清单,所有已知的IE错误(据我不知道无论如何),但有很多网站,提供他们的细节,以及如何处理它们。
首先,确保IE以标准模式呈现页面。如果您处于古怪模式或兼容性模式,您可能会遇到问题。特别是避免怪癖模式,将消除最糟糕的布局怪异,历史上给IE一个不好的名字。
如果您处于需要支持IE6的不幸境地,您将需要了解它所具有的各种bug以及如何解决它们。它们有很多,并且能够隔离那些错误修复,所以它们只适用于受影响的IE版本是很重要的,所以你的IE类会派上用场。
IE的后期版本有较少的bug;IE8的行为相对良好,坦率地说,通常不需要太多针对浏览器的bug修复。不过,IE7仍然有问题,而IE6就是可怕的。这里的关键是知道您何时被某个特定的bug击中,并相应地发出CSS修复。
对于这一点,你的第二个问题的答案是:是的,你只需要测试,当你在任何版本的IE中看到一些奇怪的东西时,你需要调查它,找出原因,如果它是一个错误,处理它是适当的。
发布于 2013-09-08 13:02:49
是的,在每个浏览器中进行测试,然后添加任何需要的内容。
发布于 2013-09-08 13:14:50
有一个服务,它可以帮助您查看css功能支持。
http://caniuse.com/
因此,您可以看到哪些代码会在较低的浏览器版本中造成困难。
https://stackoverflow.com/questions/18683796
复制相似问题