onclick事件实现div的隐藏和显示

在IE内( 6 7 都一样) 运行下面代码 ,代码可以从附件里下载

(大家可以看一下 dom结构多么的简单啊)

Html代码 复制代码
  1. <html>  
  2.  <head>  
  3.  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  4.  <title>IE BUG ---- table position & select </title>  
  5.   
  6. <script>  
  7.   function showDiv(){   
  8.     var tbox=document.getElementById("tbox");   
  9.     tboxtbox.style.display = tbox.style.display=="none"?"":"none";   
  10.  }   
  11. </script>  
  12.   
  13. <style>  
  14.   
  15. .badtable {   
  16.     width: 200px;    
  17.     height:100px;   
  18.   
  19.     background-color: #f0f0f0;   
  20.   
  21.     position: relative;   
  22. }   
  23.   
  24. </style>  
  25.  </head>  
  26.   
  27.  <body>  
  28.   
  29.   <input onclick="showDiv()" type="button" value="show/hide" /> <br/>  
  30.   
  31.   
  32. <div id="tbox" >  
  33.   
  34.   
  35.     <select>  
  36.         <option>我是一个select</option>  
  37.     </select>    
  38.   
  39.        
  40.       <table class="badtable" border="1" >  
  41.        <tr>  
  42.          <td >表格内容1</td>  
  43.         </tr>  
  44.       </table>  
  45.        
  46.   
  47.   
  48.  </div>  
  49.   
  50. 其他内容1<br/>  
  51. 其他内容2<br/>  
  52. 其他内容3<br/>  
  53. 其他内容4<br/>  
  54.  </body>  
  55. </html>  

运行以上代码 
============================================= 
点击 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 都是一样的诡异) 
我彻底被你打败了 
============================================= 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值