0

我习惯于 Wordpress 自动将 IE 特定 ID 属性添加到 HTML 标记,以编写特定于 Internet Explorer 的 css 类。我刚刚注意到,当我在 IE9 中查看该站点时,此功能当前不起作用。

在 IE8...

<html id="ie8" lang="en-US">

在 IE9...

<html lang="en-US">

这是预期的行为吗?有人知道为什么是这样吗?


可能是因为 IE8 和之前的所有奇怪的怪癖需要黑客才能解决,IE9 相对不错,所以可能不需要为其添加额外的定义。

4

3 回答 3

2

您的 Wordpress 主题中可能已经定义了类似的内容:

<!--[if IE 6]> <html id="ie6" <?php language_attributes(); ?>> <![endif]-->
<!--[if IE 7]> <html id="ie7" <?php language_attributes(); ?>> <![endif]-->
<!--[if IE 8]> <html id="ie8" <?php language_attributes(); ?>> <![endif]-->
<!--[if !(IE 6) | !(IE 7) | !(IE 8)]><!--> <html <?php language_attributes(); ?>> <!--<![endif]-->

这些条件注释将被 IE 读取,并将 ID 添加到 HTML。这可能是为了加载一些 CSS,或者是特定于那个版本的 IE。

如果你愿意,你可以这样写:

<!--[if IE 9]> <html id="ie9"> <![endif]-->

并在其中添加一些特定于 IE9 的内容。

于 2013-03-05T15:49:13.217 回答
1

可能是因为 IE8 和之前的所有奇怪的怪癖需要黑客才能解决,IE9 相对不错,所以可能不需要为其添加额外的定义。

于 2013-03-05T15:46:41.300 回答
0

可能是因为 IE9 被认为是一个里程碑,它解决了过去困扰 WordPress 的许多问题。

如果您仍然想要这种功能,为什么不使用这样的条件注释:

<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" <?php language_attributes(); ?>> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" <?php language_attributes(); ?>> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" <?php language_attributes(); ?>> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html <?php language_attributes(); ?>> <!--<![endif]-->
<head>
</head>
<body>
</body>
</html>

好多了对吧?这当然会进入header.php你的主题。

希望有帮助,米奇。

于 2013-03-05T15:50:28.613 回答