【问题标题】:IE7 Ignores Conditional StatementIE7 忽略条件语句
【发布时间】:2012-07-15 13:21:58
【问题描述】:

我正在为一个 90% 的用户在 IE 上浏览的公司网站敲定代码。我的条件语句适用于除 IE7 之外的所有浏览器。我不确定为什么 IE 会忽略我为 IE 浏览创建的单独样式表。请在下面查看我的代码。

这里还有这段代码:

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" charset="utf-8" />

...允许我删除 IE 7-9 中的兼容模式。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=EDGE" charset="utf-8" />
<tile>Company Site</title>
<link rel="stylesheet" href="css/style.css" media="screen" />
<!--[if IE]><link rel="stylesheet" href="css/ie.css"><![endif]-->
<!--[if IE 8]><link rel="stylesheet" href="css/ie8.css"><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="css/ie7.css"><![endif]-->
</head>

然后我的其余代码似乎可以正常工作并验证没有问题。好像 IE7 被忽略了。

提前感谢您的帮助!

【问题讨论】:

  • 我注意到您的第二个代码片段在X-UA-Compatible 位中没有IE=7 -- 这是故意的吗?
  • 如果您使用的是 X-UA-Compatible 标签,那么我会确保它将每个人都降级到 IE7 并使 IE7 正常工作。那么你就没有理由拥有额外的样式表了,它为未来的浏览器消除了任何进一步的错误。
  • @Deflect - 如果这是他的回答,我会喜欢的!
  • 很高兴看到您正在使用 HTML5。
  • 我可以删除 IE 8 工作表,只使用 if gte IE 8 语句,它应该适用于 IE 8 和 9。我会尝试,但 IE 7 忽略了我扔给它的任何东西,它是使我抓狂!此外,它并没有降级所有的 IE 浏览器。一些较新的浏览器升级看起来像圆角等。

标签: html css internet-explorer-7 conditional-statements


【解决方案1】:

看起来我不得不为样式表使用绝对链接而不是相对链接。所以使用类似的东西:

<link rel="stylesheet" href="http://mywebsite.com/css/style.css">

而不是

<link rel="stylesheet" href="css/style.css">

感谢您的所有帮助,但对于 IE,这始终是小事。

为了记录,我还确保我更改了标题的外观,这要感谢你们提供的一些很棒的提示。这是现在的最后一个标题示例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" charset="utf-8" />
<title>My Site</title>
<link rel="stylesheet" href="css/style.css" media="screen">
<!--[if gte IE 8]><link rel="stylesheet" href="css/ie.css"><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="http://mysite.com/css/ie7.css"><![endif]-->
</head>

【讨论】:

    【解决方案2】:

    我不确定为什么它没有调用文件,但可能是文件放错了地方或其他什么。您现在可以取出 IE 的行,只测试 IE 7 文件。

    【讨论】:

      【解决方案3】:

      您的 X-UA-Compatible 标头是多余的。它的内容应该只是IE=edge,不多也不少。

      至于样式表,您可以通过添加可见的内容来测试评论是否正在处理,例如&lt;script&gt;alert("Hello!");&lt;/script&gt;(因为您在&lt;head&gt; 中,所以不能只在其中放入纯文本)。

      如果您执行此操作并显示警报,则您的 CSS 文件可能存在问题。要么是 404,要么你有特异性问题(正如 CrazyVipa 建议的那样)。如果上述测试没有结果,我们将需要更多信息来进一步诊断。

      【讨论】:

        【解决方案4】:

        尼娜,

        您应该检查日志以查看它是否正在本地下载。看起来您的 CSS 似乎没有被应用,但可能是 CSS 规则被覆盖了。

        例如,如果您的标准 CSS 文件有:

        #content-custom a {
        color:#fff;
        }
        

        你的 CSS 条件有:

        .custom a {
        color:#000;
        }
        

        您的字体将显示为#fff。我还没有听到或看到任何与条件语句相关的实际错误。我注意到的唯一问题是人为错误。 (错误类型、权限、本地环境等)我的假设是 CSS 文件被覆盖。 CSS 禁用?链接无效?

        很抱歉这么说,但很可能是您的错字。

        【讨论】:

        • CrazyVipa 我很想说是这样,但事实并非如此。在我的测试环境中,IE 中的兼容模式完全改变了网站的显示方式。当我将它上传到在线服务器时,我不得不再次更改我的样式表。我刚刚了解到,在该特定服务器上运行 IIS 7.5 的所有 IE 浏览器都以兼容模式运行该站点。无论如何,我确保我的 div 在两个样式表上完全相同。我被难住了。
        • 试着给他们更高的优先级。例如,在普通样式表上,“#custom-doc p”更改为“html #custom-doc p”——您确定 IE 机器实际上正在下载文件吗?您是否可以对文件进行粘贴或提供更多信息?我刚刚在这里进行了快速测试,一切顺利。当然,我们不运行 IIS....
        猜你喜欢
        • 2016-02-09
        • 1970-01-01
        • 1970-01-01
        • 2019-10-22
        • 1970-01-01
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多