【问题标题】:IE9 Browser modes and conditional commentsIE9 浏览器模式和条件注释
【发布时间】:2012-06-15 08:22:22
【问题描述】:

我正在使用 HTML Boilerplate 文档标题,它为 IE 版本的标签添加了各种类。当使用 IE9(按 F12)并更改浏览器模式时,我似乎记得这将始终显示相关的浏览器(在兼容模式下为 IE8/IE7 或 IE7),但是,现在这似乎不起作用。

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

该网站可以在http://rangeessentials.petersenuploads.co.uk/查看

使用我的 IE7 虚拟机似乎也无法正常工作。我错过了什么,因为我总是得到没有 IE 类的最终标签。

【问题讨论】:

    标签: internet-explorer internet-explorer-9 conditional-statements html5boilerplate


    【解决方案1】:

    与其有多个&lt;html&gt; 开始标签,这无论如何可能是非法的,你应该有多个样式表,然后在这些样式表中相应地应用相关样式:

    <!-- [if lt IE 7]><link type="text/css" rel="stylesheet" href="Styles_IE-7.css" /><![endif]-->
    <!-- [if IE 7]><link type="text/css" rel="stylesheet" href="Styles_IE7.css" /><![endif]-->
    <!-- [if IE 8]><link type="text/css" rel="stylesheet" href="Styles_IE8.css" /><![endif]-->
    <!-- [if gt IE 8]><link type="text/css" rel="stylesheet" href="Styles_IE8-.css" /><![endif]-->
    

    但即使在您的代码中,您的最后一个条件注释中也有 &lt;!--&gt;&lt;!-- - 这也可能是问题所在。

    【讨论】:

    • 应该没问题。当然,当前大多数样板类型的解决方案都在使用它stuffandnonsense.co.uk/projects/320anduphtml5boilerplate.com
    • 我不明白它的目的。拥有多个 html 开始标签比拥有多个样式表更好吗?
    • 不,只有一个 标签被渲染,但它允许你做类似 .lt-ie7 ul li {display: inline; zoom:1} 你可能使用过 display: inline-block;基本上是针对 IE 浏览器而不使用 hack 的一种更简洁的方法。看看html5boilerplate.com
    • 哦,我明白了。但是,不是渲染许多 标记之一,而是像我的回答那样为适当的样式表渲染许多 标记之一,这不是更容易吗?然后,您只需在 Styles_IE-7.css 或 w/e 中使用 ul li { ... } 而不是 .lt-ie7 ul li { ... }
    • 在过去,是的,但这是针对响应式网站,您可以在其中加载基于屏幕尺寸(媒体查询)的样式表。这样做,您可以为每种屏幕尺寸的每个 IE 获得一组样式。这样,您可以将所有 IE 修复程序合并到一个样式表中(也可以提高下载速度,因为您没有很多文件)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2010-11-07
    • 2011-03-01
    • 1970-01-01
    • 2011-07-26
    相关资源
    最近更新 更多