显示无ie9与浮动左元素崩溃

时间:2013-01-18 07:00:58

标签: html internet-explorer-9

当我点击超链接"关闭"然后" on"在下面的html示例中,(非常简化的代码),ie9崩溃

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
    <title>title</title>
</HEAD>
<BODY>
    <DIV style="display: inline;">
        <A style="float: left;">always&nbsp;</A>
    </DIV>

    <DIV style="display: inline;" id="hideMe">
        <A style="float: left;">some</A>
        <A style="float: left;">times&nbsp;</A>
    </DIV>

    <DIV style="display: inline;">
        <A style="float: left;">always&nbsp;</A>
    </DIV>

    <DIV>
        <A onclick="{document.getElementById('hideMe').style.display = 'inline';}" href="#">on</A>
        <A onclick="{document.getElementById('hideMe').style.display = 'none';}" href="#">off</A>
    </DIV>
</BODY>
</HTML>

我不确定接下来要做什么,我无法看到代码的基本问题,它平均传递HTML 4.01严格!验证

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

我没有IE9来测试这个,但只是查看代码,我会说基本问题是floatinline元素内部。

inline元素不应包含任何块内容(包括浮点数)。

如果你需要这种布局,你应该使用display:inline-block代替inline,虽然我认为浮动仍然是不必要的,因为链接应该在它们的包含内排成一行

我认为应该解决问题。

说了这么多,如果你已经崩溃浏览器那么它就是一个浏览器错误,无论代码的质量或有效性如何。浏览器应该能够优雅地处理这种事情;崩溃是坏消息。您应该向Microsoft报告,即使您确实设法解决了这个问题。 (对于他们来说,你有一个简单的测试用例来证明这个问题会特别有用)