`

IE又一个让人吐血的BUG: 关于 table的position 和 select

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

(大家可以看一下 dom结构多么的简单啊 )
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>IE BUG ---- table position & 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;
}

</style>
 </head>

 <body>

  <input onclick="showDiv()" 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>



运行以上代码
=============================================
点击 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 都是一样的诡异)
我彻底被你打败了
=============================================
2
1
分享到:
评论
4 楼 dbwang 2008-04-19  
读了你的日志,挺涨见识的!
3 楼 fins 2008-04-14  
dangzhao 写道

晕,这根本都不是Bug
看看这个

设置此属性值为 relative 会保持对象在正常的HTML流中,但是它的位置可以根据它的前一个对象进行偏移。在相对(relative)定位对象之后的文本或对象占有他们自己的空间而不会覆盖被定位对象的自然空间


你的说法完全错误的 呵呵

这个不是 relative 定位的问题, 而是 relative 的对象无法被隐藏的问题.
你看哪里说过 position等于relative  的对象无法被隐藏了?

而且其他浏览器都没有这个问题 这是IE的bug, 毫无疑问的

你可能没明白我帖子里写的东西的意义
建议你下载下来试一试

再把 select 换成 别的东西试一试
你会发现, 确实是 IE在处理select时的bug


我接触ajax 这些东西也有几年的历史了,虽然不敢妄称高手,但是relative  的意义还是明白的 呵呵


另外: hax可是这个领域内国内的顶级专家了 他的话还是要相信的 哈哈
2 楼 dangzhao 2008-04-14  
晕,这根本都不是Bug
看看这个

设置此属性值为 relative 会保持对象在正常的HTML流中,但是它的位置可以根据它的前一个对象进行偏移。在相对(relative)定位对象之后的文本或对象占有他们自己的空间而不会覆盖被定位对象的自然空间
1 楼 hax 2008-04-12  
这个是select的毛病。老毛病了。我们都了解用iframe来遮挡select的故事了。但是思考它的机制,实在是很佩服M$的一干程序员,真有想象力啊!

相关推荐

    吐血整理:论文写作中注意这些细节,能显著提升成稿质量 .rar

    "吐血整理"一词表达了作者在整理这些要点时付出的巨大努力,意味着这些内容经过了深入研究和实践验证。"能显著提升成稿质量"则强调了这些细节对于论文质量的直接影响。论文质量不仅关乎研究的严谨性,还体现在逻辑...

    吐血贡献:Linux_ARM网络连接与设置总结

    Linux_ARM网络连接与设置总结: 总结了我linux_arm9开发过程中关于网络连接与设置的一些心得。本人技术有限,如果其中有什么错误,还请多多指正。先行谢过!

    吐血推荐:OpenSSL安装包及安装方法与心得

    下面谈一下自己的感受和方法! 为了在网络上实现PKI的各种功能,我想在windows2003上安装Openssl,除了工作外,装了几乎3天,经过了多次失败,看了网上各种光怪陆离的失败、错误,不断尝试,今天终于成功了,现介绍...

    吐血推荐的sql2000学习资料

    这个“吐血推荐的sql2000学习资料”压缩包文件中包含的“sql.doc”文档,很可能是一个详细的教学指南或者教程,旨在帮助学习者掌握SQL Server 2000的基础和高级概念。 在学习SQL Server 2000的过程中,首先需要理解...

    吐血共享:开关电源常用的6种并联均流原理详解.doc

    均流技术是开关电源并联均流技术的核心,通过取样、电子控制调节环路来保证整个系统的输出电流按每个单元的输出能力均摊,以到达既充分发挥每个单元的输出能力,又保证每个单元可靠工作的目的。 3. 均流技术的几种...

    吐血推荐:BlackBerry下定制自己的UI空间,包括Button,Field,Manager

    项目源代码,如果要编译这个项目,把编译器的版本改为1.4(最新的是1.6),在项目的Property-&gt;Java Compiler中修改。 效果参考博客: http://blog.csdn.net/BBHeipy/archive/2010/07/09/5723443.aspx

    sql基础与优化吐血整理

    如SELECT(获取数据)、UPDATE(更新数据)、DELETE(删除数据)、INSERT INTO(插入数据)、CREATE DATABASE(创建数据库)、ALTER DATABASE(修改数据库)、CREATE TABLE(创建表)、ALTER TABLE(修改表)、DROP ...

    吐血奉献经典SQL语句大全

    "吐血奉献经典SQL语句大全"这一资源显然是为了帮助新手快速掌握SQL的核心概念和常用命令,提供了一个全面的学习资料。以下是基于这个主题的详细知识点讲解: 1. **SQL基础**: - **数据定义语言 (DDL)**:包括创建...

    Oracle试题(吐血推荐).doc

    Oracle试题(吐血推荐).doc 本资源摘要信息中包含了 Oracle 数据库试题的详细解析,涵盖了 SQL(DQL)部分的知识点,包括 SELECT 语句、WHERE 子句、日期函数、模糊查询、组函数等。 SELECT 语句 SELECT 语句是 ...

    吐血整理:2021一建冲刺知识点(李思德视频讲解版)---市政实务复习笔记(247页)可直接下载打印.pdf

    第一部分 道路工程(23个考点) 4 1.道路工程结构与材料 4 1.1城镇道路分类与分级 4 1.2沥青路面结构组成特点 4 1.3沥青混合料组成与材料 7 1.4沥青路面材料的再生应用 8 1.5水泥混凝土路面构造特点 9 1.6不同形式挡...

    SQL2000的一些实用语句

    - **如何将一个表的数据转移到另一个表**。 - **数据完整性检查**。 **代码示例**: ```sql TRUNCATE TABLE A; INSERT INTO A SELECT * FROM B; DROP TABLE B; ``` **解释**: 这段代码首先清空目标表`A`,然后将源...

    VCOM.rar_site:www.pudn.com_vcom_吐血

    【标题】"VCOM.rar" 是一个压缩文件,其中包含了有关 "VCOM" 技术的相关资源。"site:www.pudn.com" 指示这个资源可能来源于 PUDN(编程开发网络)网站,这是一个知名的中文技术分享平台,用户们在此交流编程经验、...

    jacob使用说明终极吐血版

    **Jacob使用说明终极吐血版** Jacob(Java和COM Bridge)是一个开源的Java库,它提供了在Java应用程序中调用Windows COM组件的能力。这个库使得Java开发者能够利用大量的已有的COM对象,比如Microsoft Office组件,...

    吐血奉献_SQL语句大全

    - **ORDER BY**:根据一个或多个列对结果进行排序,可使用`ASC`(升序)和`DESC`(降序)。 6. **视图(View)** - 视图是虚拟表,基于一个或多个表的查询结果,可以简化复杂的查询并提供安全的访问限制。 7. **...

    avr.rar_ATMEGA88_avr_uCOS avr_ucos atmega88_吐血

    标题中的"avr.rar_ATMEGA88_avr_uCOS avr_ucos atmega88_吐血"表明这是一个关于AVR微控制器,具体来说是ATMEGA88芯片上移植并成功运行uC/OS操作系统的一个项目压缩包。uC/OS(Micro-C/OS)是一种实时操作系统(RTOS...

    通达信指标公式源码自用很多年的一个指标 指标吐血奉上.doc

    通达信指标公式源码是一个非常重要的技术指标,为交易者和投资者提供了实时的市场信息和分析结果。本文将对通达信指标公式源码进行详细的解释和分析,并对其在实际应用中的价值进行评价。 首先,让我们来看一下...

Global site tag (gtag.js) - Google Analytics