0

让我的 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 选择器是 /wonky/ 在哪个版本的 IE 中的一个很好的纲要?甚至是 Stack Overflow 文章的一个很好的参考线程,关于在为 IE7 和 8 设计时要注意什么?

4

2 回答 2

3

就 if 语句而言,代码看起来不错,但在最顶部放置 xml 声明会使 IE 处于怪癖模式,因此这可能会导致一些问题,如果不是的话,将证明会在未来添加一些问题。可能想从头开始,看看是否有帮助。

关于为每个版本的 IE 构建,不要。恩典退化是游戏的名称。对我来说,它的表现是这样的:IE8 和 9 应该在功能上表现得很好,并且在设计方面几乎如此(取决于你在设计和代码中引入了多少小技巧)。IE7 应该可以工作,而不是看起来一团糟。IE6可以吸。

如果您的客户特别要求浏览器的完全兼容性,那么这显然是另一回事。

关于在 IE 中需要注意和轻松规避的事情,您可以查看类似这样的帖子,以帮助关注那些常见问题:http ://css-tricks.com/ie-css-bugs-thatll-每次都能得到你/

于 2012-04-22T00:34:21.270 回答
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不是代码中的第一件事,它们就会陷入 Quirks 模式。(即使在文档类型上方有评论也会触发这个不幸的错误)

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

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

于 2012-04-22T19:41:23.177 回答