以文本方式查看主题

-  ╋艺 镇╋  (http://wdystv.com/bbs/index.asp)
--  ┣◇网站建设&Web语言  (http://wdystv.com/bbs/list.asp?boardid=4)
----  [转帖]IE又一个让人吐血的BUG: 关于 table的position 和 select  (http://wdystv.com/bbs/dispbbs.asp?boardid=4&id=3074)

--  作者:admin
--  发布时间:2011/5/25 11:51:17
--  你为何会忘记前世?揭秘残酷轮回真相!
<html>
<head>
<meta http-equiv="Content-Type"c/>
<title>IEBUG----tableposition&select</title>
<script>
function showDiv(){
 var tbox=document.getElementById("tbox");
 tbox.style.display=tbox.style.display=="none"?"":"none";
}
</script>
<style>
.badtable {
 width:200px;
 height:100px;
 background-color:#f0f0f0;
 position:relative;
}
/*#tbox{
 position:relative;
 } */
</style>
</head>
<body>
<input type="button" value="show/hide"/><br/>
<div id="tbox">
<select>
  <option>我是一个select</option>
</select>
<table class="badtable" border="1">
<tr>
  <td>表格内容1</td>
</tr>
</table>
</div>
其他内容1<br/>
其他内容2<br/>
其他内容3<br/>
其他内容4<br/>
</body>
</html>
[此贴子已经被作者于2011-5-25 11:51:53编辑过]

--  作者:admin
--  发布时间:2011/5/25 11:51:45
--  
运行以上代码
=============================================
点击 show/hide 按钮后,
div ccc 被隐藏, 里面的内容也被隐藏, 但是table 却还显示(里面的td也已经隐藏了)

解决办法一:
把是 table样式里的 "position: relative;"去掉 (positiond 等于 absolute 也不行)

解决方法二:
改那个 tbox的div 也加上 "position: relative;"

★ 以上两种解决方案 还是有一点逻辑性,最多可以归结为 IE在处理 table的position时有bug.
但是下面两个方案绝对让你吐血

解决方法三:
把那个 select 去掉,这个问题也不会出现

解决方法四:
把那个 select 放到table后面,这个问题也不会出现

=============================================
IE啊, 你可以让table不支持 position: relative;
但是为什么一定要在 table的前面有select的时候才不支持呢

IE 你太诡异了 (IE 6 和 7 都是一样的诡异)
我彻底被你打败了
=============================================

--  作者:admin
--  发布时间:2011/5/25 11:52:00
--  
http://hi.baidu.com/zhuguoneng/blog/item/a74bf13dc4525706bba16745.html