1

我正在使用 IE 识别的条件语句为 IE 浏览器使用 IE 特定样式表:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Touringhouse</title>

<link type="text/css" rel="stylesheet" href="css/mainstyle.css" media="screen">

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

当我在本地测试我的文件时,这会导致 IE 使用指定的样式表,而其他浏览器使用标准样式表,并且一切都按原样显示。

但是,当我上传文件以在线查看时,一切都可以在 Firefox 和其他使用标准 (mainstyle.css) 样式表但 IE 也使用相同样式表 (mainstyle.css) 的符合标准的浏览器中运行 - 它似乎不再看到iemainstyle.css 样式表。我已经仔细检查了所有代码和在线文件夹结构 - 它与我在本地拥有的相同 - iemainstyle.css 文件位于 mainstyle.css 样式表旁边的 css 文件夹中。我不确定是什么导致 IE(6 和 7)忽略 IE 特定的样式表。在此先感谢您提供的任何帮助。

4

4 回答 4

1

我建议您使用 Fiddler ( http://www.fiddler2.com/fiddler2/ ) 之类的工具来检查浏览器和服务器之间的 http 流量。您将能够看到是否正在请求 iemainstyle.css,以及服务器响应请求返回的内容。

于 2009-09-26T09:35:01.960 回答
1

好的 - 由于朋友的故障排除,终于让它工作了。IE 样式表的权限设置与主样式表不同。结果,每次执行 IE 的条件语句(告诉它查找 iemainstyle.css)时,服务器都会禁止访问 IE 样式表,因为权限不允许公共访问。我不得不使用我的 FTP 客户端来更改 IE 样式表的权限,然后一切正常。

至于为什么在我没有触及权限时上传的文件具有不同的权限 - 这可能是因为该站点是在我的 Mac 上开发的,但 IE 特定的样式表是在我的 Windows 机器上创建的。我将文件复制到我的 Mac 上,然后使用 Mac FTP 客户端 (Cyber​​duck) 上传到服务器。这是我能想到的唯一原因。

无论如何,感谢所有回答我问题的人。

于 2009-09-27T15:09:16.783 回答
0

如果您访问 Safari,“窗口”菜单中有一个不错的工具,可以显示每个文件的加载情况。它还会说明文件是否已找到。它被称为“活动”,所以检查一下:)

另一个建议是尝试重命名文件。有时使用新文件可以解决这个问题。我知道很奇怪,但值得一试。

最后,您是否尝试将条件语句针对特定版本的 IE?

即(没有双关语)...这个例子将捕获所有低于 IE8 的版本。

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

在这里可以找到更多信息:http: //css-tricks.com/how-to-create-an-ie-only-stylesheet/

我注意到的另一件事是,尝试删除 media="screen" 位,并将 finally 正斜杠添加到末尾。

如果我想到别的,我会回来的!

我相信当你找到它时它会很明显!祝你好运,这些小问题真烦人!

编辑:刚刚有了另一个想法,尝试将文件托管在其他地方,看看是否有什么不同......

于 2009-09-26T11:30:42.280 回答
0

检查大小写(下与上)窗口会忽略大小写,但 linux 不会,并且网络服务器找不到您的文件。您也可以尝试使用绝对 uri 而不是相对。

于 2009-09-26T06:07:07.843 回答