Internet Explorer 外部 CSS 问题

3
我正在处理一个网站(www.eticket24.at),需要为页头和页脚创建外部CSS。例如,在FireFox中单独查看页头通过访问www.eticket24.at/header.php可以看到样式已经应用,而在IE8浏览器中,同样的操作却没有任何样式效果。我使用link rel="stylesheet" href="http://www.eticket24.at/et24_header.css引入CSS文件。页脚也是类似的处理。这时候,问题来了,这个问题出现在Internet Explorer浏览器中,它为什么不按照我们预期的样子呢?感谢您的帮助!

你把样式表放在body标签里面?! - ifaour
我将样式表包含在body标签中,因为我需要该文件是单独的,以便另一家公司可以安全地链接到header.php文件,同时完整保留CSS样式。 - user571373
header.php的Include在现场网站上可以正常工作,因为它被插入到一个有效的HTML文档中。 header.php本身不是有效的HTML文档,但Firefox会自动更正并将其呈现为一个HTML文档,而IE则不会。如果未来的客户想要使用此包含文件,则只需在有效的HTML文档中包含头文件即可。 - Refugee
4个回答

1
这是因为当您单独查看标头时,Firefox会纠正不完整的标记,并使用<html><body>...</body></html>标记使页面成为有效的HTML文档。
IE不会这样做,所以样式不会应用于无效页面。
这也是为什么该页面在实时网站上看起来正确的原因。

我需要将文件分离,以便另一家公司可以安全地链接到header.php文件,并完整地使用CSS样式。我是否应该在header.php文件中创建<html><body>...</body></html>标签,以便IE可以理解正在发生的事情。但是这肯定会引起问题,因为有多个html和body标签(在header.php和index.php中都可以找到)。 - user571373
在 header.php 文件中没有 html 标签,这就是为什么在IE中它无法正确呈现的原因。如果下一个公司在有效的 html 文档中包含该文件,则应该会正确显示,这也是为什么它在当前实时站点上正确显示的原因。 - Refugee

1

你的链接在页面主体内... 试着将它放到 <head /> 部分。同时,在 <rel /> 标签中添加 type="text/css"


你不需要 type="text/css" - Paul D. Waite

1

header.php并没有返回完整的HTML页面,所以可能是因为Internet Explorer在这方面出了问题。即使Firefox可以渲染它,我认为你不能指望所有浏览器都能这样做。

正如ifaour所提到的,您可能希望将<link>标签移动到<head>标签中,因为它们不应该放在<body>中。


0

我将所有的css样式都嵌入到.php文件本身中,而不是链接它们,并且更改了一些div的名称(从

,从

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接