IE8下显示的隐藏元素溢出inline-block元素 - Edgar Hoo Blog

IE8下显示的隐藏元素溢出inline-block元素

昨天用IE 8测试某页面时,发现点击显现隐藏的元素后其浮于其他元素之上,也即其他元素没有相应的腾出空间来容纳,其他浏览器没有出现些现象,包括IE 7。

现作简易页面记录此问题。代码如下:

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • <html>
  • <head>
  • <title>Edgar Hoo Lab</title>
  • <style type="text/css">
  • #box{display:inline-block;}
  • #hide{display:none;padding:20px;;border:3px solid #f00;}
  • #line{background:#ccc;}
  • </style>
  • <script type="text/javascript">
  • window.onload = function() {
  • var btn = document.getElementById("btn");
  • var hd = document.getElementById("hide");
  • btn.onclick = function() {
  • hd.style.display = hd.style.display != 'block' ? 'block' : 'none';
  • };
  • };
  • </script>
  • </head>
  • <body>
  • <div id="box">
  • <div>
  • <div><button id="btn">display</button></div>
  • <div id="hide">hide</div>
  • </div>
  • </div>
  • <div id="line">line</div>
  • </body>
  • </html>

经测试发现,若要产生此现象,DTD必须存在,按钮的父级div元素也必须存在。

Google Chrome下点击按钮后截图,此为期望显示。

chrome-display-hidden-overflow-inline-block

IE 8下点击按钮后截图。

ie-display-hidden-overflow-inline-block

测试地址:IE8下显示的隐藏元素溢出inline-block元素

@ Aug. 18, 2009 SH

---------------这是分割线---------------

Flickr: 1 / 2



Post a Comment

Your email is never shared. Required fields are marked *

*
*
*