0

我在单独的 html 文件中创建了网站的页眉和页脚,并将这些文件嵌入到我的网页中。

经过所有艰苦的工作并完成了网站,我在 IE8 中遇到了一个错误。我的页眉和页脚在 IE7 和 8 中到处都是对齐的。

<footer>
    <div id="divObjFooter">
        <object data="/footer.html" type="text/html">
            &nbsp;
        </object>
    </div>
</footer>

更新 - 为运行 html5 的任何版本修复 终于找到了一种支持即任何版本的方法。

<!--[if IE]>
            <div id="footer">
                <div id="divObjFooter">
                    <iframe src="footer.html">&nbsp;</iframe>
                </div>
            </div>
        <![endif]-->

        <![if !IE]>     
            <footer>
                <div id="divObjFooter">
                    <object data="footer.html" type="text/html">&nbsp;</object>
                </div>
            </footer>
        <![endif]>
4

4 回答 4

1

ie8 和更早版本不支持 HTML5 标记(在您的情况下是<footer>标记),因此不要设置它们的样式。为了解决这个问题,您可以简单地使用div带有 id 的 's 并从那里设置样式,或者,如果您想使用最新最好的 HTML5 东西,您可以使用 html5 shiv。

我会推荐托管在 Google 代码上的脚本: https ://code.google.com/p/html5shiv/

于 2013-02-14T20:43:38.637 回答
0

在针对目标受众使用新标签和选择器之前,请检查网站Can I Use是否支持浏览器。HTML5CSS3

IE<10 支持很少(少于 40%)现代 html 和 css。您可能不得不使用modernizr 或类似的东西,或者根本不使用最新的“闪亮”

于 2013-02-14T20:47:26.997 回答
0

首先回答标题中的问题:IEobject从 IE 4 开始就支持该元素(尽管早期的实现很糟糕)。你的问题似乎不在于那个元素,而是你的footer元素样式——一个完全不同的问题。

IE 7 和 IE 8 不支持该footer元素。这无关紧要,因为默认效果只是使元素内容成为一个块,而您的内容已经是一个块(一个div元素)。footer导致问题的原因是您有一些在元素上设置属性的 CSS 规则。这在 IE 7-8 上不起作用,因为即使在让您设置样式的意义上,它们也无法识别元素。

有一个快速解决方法:将以下内容放在您的第一个样式表或对任何样式表的引用之前:

<script>document.createElement('footer')</script>

这实际上是许多“shims”或“polyfills”或任何你称之为它们的东西正在做的事情,如果你只有一个问题footer,你可以只使用快速修复。

div或者,使用选择器在内部设置 CSS 规则#divObjFooter

PS 使用object(或iframe)包含页脚是可能的,但很笨拙。它将在文档窗口的子窗口中包含一个 HTML 文件,并且链接将无法正常工作等。如果可能,最好使用服务器端工具,如服务器端包含 (SSI) 或更高级的对应工具,或页面管理软件。

于 2013-02-14T21:03:11.003 回答
0
<!--[if IE]>
        <div id="footer">
            <div id="divObjFooter">
                <iframe src="footer.html">&nbsp;</iframe>
            </div>
        </div>
    <![endif]-->

    <![if !IE]>     
        <footer>
            <div id="divObjFooter">
                <object data="footer.html" type="text/html">&nbsp;</object>
            </div>
        </footer>
    <![endif]>
于 2013-03-01T00:02:14.370 回答