首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><!!-[if< IE 7 ]><html class="ie ie6“lang="en"> <![endif]-->

<!!-[if< IE 7 ]><html class="ie ie6“lang="en"> <![endif]-->
EN

Stack Overflow用户
提问于 2013-09-13 13:30:18
回答 4查看 26.2K关注 0票数 11
  1. <!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->这个代码行和其他类似的IE代码行在HTML5文档中意味着什么?
  2. 如果我必须使某些css特性与IE8或更低版本兼容,那么上面提到的代码行或html类是否有帮助?
  3. 如果#2的答案是'No',那么我应该使用本文中提到的条件IE样式表吗?-- http://css-tricks.com/how-to-create-an-ie-only-stylesheet/
  4. 如果#3的答案也是“否”,那么应该做些什么来使css特性在旧的IE版本中兼容。任何参考网站/演示将是一个很大的帮助!
EN

回答 4

Stack Overflow用户

发布于 2013-09-13 13:43:03

  1. 这是一个条件IE语句。他们只被IE阅读。任何其他浏览器都会将它们读取为任何正常的注释,分别在语句的开头和结尾注意<!---->。IE有识别此注释的特殊代码,并将注释中的内容作为常规HTML使用。针对上面粘贴的代码,IE条件语句将类ie6应用于HTML。通过这种方式,您可以只为某些元素提供IE,方法是在css选择器中首先引用该类。例如,只有在存在.ie6 #header {}类的情况下,IE6才会应用于标头,而且由于有条件语句,该类只会出现在IE6中。
  2. 按照与上面相同的样式,您将使用以下代码:<!-- [if IE 8]><html class="ie ie8" lang="en"><![endif]-->
  3. 如果您愿意的话,您可以使用IE样式表,无论是哪种方式,您都可以获得基本相同的结果。我个人会在HTML上的类中使用上面的方法,然后使用一个通常称为ie.css的单独的css文件。在这个文件中,除了IE样式,什么都没有。注意,使用此方法,样式表不需要设置在条件IE语句中。作为一个独立样式表的真正目的是为了组织目的。我也会这样做,只有当你有一个中等到大量的IE条件代码。如果您有最小的IE回退代码,只需在主样式表中包含它正在修复的代码旁边的代码即可。
  4. 您还可以在一定程度上使用现代派塞替维兹等工具扩展IE支持。
票数 11
EN

Stack Overflow用户

发布于 2013-09-13 13:47:37

您在问题中讨论的所有示例都旨在检测浏览器是否是IE (以及IE版本),然后尝试从那里处理它。

请注意,这是而不是认为的最佳实践。

如果您需要处理浏览器的差异和缺少的特性,那么处理它的最好方法是使用一种称为功能检测的技术,而不是使用浏览器检测。

我推荐的是查找一个名为现代派的库。几乎可以肯定,这是一个比你问题中的任何想法都更好的起点。

为了修复特定的浏览器特性,现代派团队还提供了一个名为"polyfills“的附加库列表。找出您需要支持的特性,并在列表中查找能够满足您需要的多填充脚本。其中一些是通过现代化加载的,而另一些则可以自己运行。

我会避免做任何浏览器或版本检测,除非这绝对是最后的手段。

在使用复合填充时,要记住一件事:在较旧的IE版本中缺少许多浏览器功能。还有一些多填充脚本将帮助您实现其中的大多数。不过,请不要认为你可以简单地包含每一个多边形填充,并将旧的IE版本变成一个更现代的浏览器。

简单的事实是,旧的IE版本又老又慢。加入多填充会使它们变慢。您应该仔细考虑每个特性,并决定是否真的有必要填充它。如果没有它,这个网站还能使用吗?在许多情况下,让旧浏览器在没有特定功能的情况下工作会更好。

票数 3
EN

Stack Overflow用户

发布于 2013-09-13 13:41:28

正如@FDL所指出的,如果您有适当数量的样式来应用不同版本的IE,请使用条件样式表。

为了进行最小的定位调整,我使用html类(如ie8或ie9),并将修改放到我的主样式表中。

例如:

代码语言:javascript
复制
.filter-bar .item { float: left; vertical-align: top; }
.ie8 .filter-bar .item { position: relative; top: 2px; } /* fix a gap in IE8 */
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18787602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档