【问题标题】:IE7 thinks it is IE8?IE7认为它是IE8?
【发布时间】:2011-11-08 11:43:57
【问题描述】:

我正在尝试使用条件 cmets 来破解 IE7 使其表现得像一个真正的浏览器。

但是最近几天,IE7 忽略了引用它的条件,只响应针对 IE8 的条件。

我的标题有:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1    /DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

...

条件是:

<!--[if IE 7]>
<link rel="stylesheet" href="/css/ieHacks.css" type="text/css" media="screen" />
<![endif]-->

在 IE7 或 8 中都无法识别。但如果是的话

<!--[if IE 8]>
<link rel="stylesheet" href="/css/ieHacks.css" type="text/css" media="screen" />
<![endif]-->

然后样式表在 IE7 和 IE8 中都呈现。

有什么想法吗?我被难住了。

【问题讨论】:

  • 听起来是个奇怪的问题。你有活生生的例子吗?
  • 我没有 IE 来测试,但你试过删除IE8 之间的空格吗? (当然,这纯属猜测和猜测。)
  • @David Thomas:空间应该在那里,奇怪的是。
  • @BoltClock,谢谢! (我是这么认为的,但不确定...)=)
  • 请问您是如何测试不同版本的?单独的 PC、虚拟机、IETester 或 IE8 或 9 的开发工具切换到兼容模式/旧文档模式。

标签: css internet-explorer internet-explorer-7 conditional conditional-comments


【解决方案1】:

我遇到了 IE8 无法读取 IE 样式表的问题,所以现在我更喜欢在我的主样式表中为 IE 添加一个类。无论如何,使用一个样式表维护代码更容易。 Paul Irish explains it better 但基本上你是这样说的:

<!--[if IE]> <html class="ie"> <![endif]-->

您的条件样式表链接所在的位置,然后在您的 css 中为您需要的每个 IE 特定更改添加 ie 类。因此,假设您的填充通常为 6px,但对于 IE,您需要它为 4px,您的该 div 的 css 如下所示:

.someClass {padding: 6px;}
.ie .someClass {padding: 4px;}

【讨论】:

  • 我会将该类添加到body 元素中。
【解决方案2】:

您还可以使用 CSS hack 仅在主样式表中定位 IE7:

*:first-child+html { /* Apply IE7-only CSS here */ }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2014-05-02
    • 2011-07-20
    相关资源
    最近更新 更多