Internet Explorer检测的条件HTML语句

时间:2012-04-22 00:12:44

标签: html css internet-explorer

有问题让我的html条件语句正确拉入IE特定的CSS样式表。有人可以看看我的代码的顶部部分,看看我的语法是否正确吗?

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>Cherokee Cat Clinic</title>
  <link rel="stylesheet" type="text/css" href="styles/cherokee.css" />

    <!--[if IE]>
      <link rel="stylesheet" type="text/css" href="styles/ie/cherokee_ie.css" />
    <![endif]-->
    <!--[if IE 9]>
      <link rel="stylesheet" type="text/css" href="styles/ie/cherokee_ie.css" />
    <![endif]-->
    <!--[if IE 8]>
      <link rel="stylesheet" type="text/css" href="styles/ie/cherokee_ie.css" />
    <![endif]-->
    <!--[if IE 7]>
      <link rel="stylesheet" type="text/css" href="styles/ie/cherokee_ie.css" />
    <![endif]-->
    <!--[if lte IE 6]>
      <link rel="stylesheet" type="text/css" href="styles/ie/cherokee_ie.css" />
    <![endif]-->
    <style type="text/css">

此外,我对为不同版本的IE重建网站的过程非常陌生。我已经看过Quirks Mode的属性表了,但有哪些CSS选择器/ /在/哪个版本的IE中有一个很好的概要?或者甚至是Stack Overflow文章的一个很好的参考线程,关于在设计IE7和IE时要注意什么。 8?

2 个答案:

答案 0 :(得分:3)

就if语句而言,代码看起来很好,但是在最顶层使用xml声明会使IE处于怪癖模式,这样可能会导致一些问题,如果不能证明会添加一些问题路。可能想划伤,看看是否有帮助。

关于为每个版本的IE构建,不要。恩典降级是游戏的名称。对我来说它是这样的:IE8&amp; 9应该在功能上很好地显示出来并且几乎是设计上的(取决于你在设计和代码中引入了多少小技巧)。 IE7应该工作,而不是一团糟。 IE6可以吸吮它。

如果您的客户专门请求浏览器完全兼容,那么这显然是另一回事。

关于在IE中需要注意和轻松规避的事项,你可以查看这样的帖子,以帮助留意这些常见问题:http://css-tricks.com/ie-css-bugs-thatll-get-you-every-time/

答案 1 :(得分:0)

您的代码:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
....

问题在于以上几行。

语法没有任何问题,但旧版本的IE存在问题,因为如果DOCTYPE不是代码中的第一件事,它们会陷入怪癖模式。 (即使在doctype之上发表评论也可以触发这个不幸的错误)

<?xml>编码行可以删除或移动到Doctype以下,这将解决旧版IE的布局gremlin问题。

如果您选择完全删除<?xml>行,则默认为UTF-8编码。这通常被认为是更好的编码类型;它无论如何都是iso-8859-1编码的超集,所以你不应该注意到任何差异。