当我点击超链接"关闭"然后" 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 </A>
</DIV>
<DIV style="display: inline;" id="hideMe">
<A style="float: left;">some</A>
<A style="float: left;">times </A>
</DIV>
<DIV style="display: inline;">
<A style="float: left;">always </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严格!验证
任何帮助将不胜感激
答案 0 :(得分:1)
我没有IE9来测试这个,但只是查看代码,我会说基本问题是float
在inline
元素内部。
inline
元素不应包含任何块内容(包括浮点数)。
如果你需要这种布局,你应该使用display:inline-block
代替inline
,虽然我认为浮动仍然是不必要的,因为链接应该在它们的包含内排成一行
我认为应该解决问题。
说了这么多,如果你已经崩溃浏览器那么它就是一个浏览器错误,无论代码的质量或有效性如何。浏览器应该能够优雅地处理这种事情;崩溃是坏消息。您应该向Microsoft报告,即使您确实设法解决了这个问题。 (对于他们来说,你有一个简单的测试用例来证明这个问题会特别有用)