From zenoven on 2010-07-23 22:04:30
IE8 form嵌套导致DIV重复显示
今天在做页面的时候发现了个奇怪的现象,一段代码在IE8下DIV好像重复显示了。(下面两段是经过,可以无视直接跳到具体现象那一部分)
在.NET群里面问了半天无果,雷锋QQ群众多朋友帮助下也没有找到原因,朋友们说也都是在IE8下有问题。检查这段代码的HTNL、CSS好多次,无果。无奈,一个个删这段代码之前、之后的代码,差不多删完了也同样没有找到。这段代码没问题啊。。。突然想到了这里面的form标签,对了,母版页也有个form!删了这段代码的form,OK!
晕。。。真没想到竟然是这个原因!现在想来,我这么久才找到bug所在,一方面是因为这段代码之前在纯HTML页面的时候是没有问题的,而粘贴到VS2005后,VS2005必须有一个默认的form ,另一方面我用了母版页,我一直以为是母版页有bug(因为前两天我用母版页的时候出过问题)
*********************************************
具体现象
如果代码的结构如下面所示
[code lang="html"]
<form id="form1">
<div>
<form id="form2">
</form>
</div>
</form>
[/code]
那么这段div就会在下面重复显示一次(IE8下,只是重复显示一个空的div)
而且如果这个div没有设置高度而设置了border,那么下面重复的效果就是条线,如果设置了高度,那么下面就是一个同样的div效果。
下图显示的是div设置了高度,下面会重复显示一个同样的div<img class="size-full wp-image-1385 aligncenter" title="IE8重复显示DIV" src="http://www.zenoven.com/wp-content/2010/07/IE8重复DIV.jpg" alt="" width="367" height="461" />
总结
粘贴代码的时候一定要注意环境,就像我之前虽然已经检测过代码无误,但是环境改变了,form嵌套问题就出在这里。另外问题出现的时候如果实在找不到原因,排除法很好。
From N on 2010-07-23 23:16:19
是沙发么?
From 自由人 on 2010-07-23 23:41:13
yes!
From QiQBoY on 2010-07-23 23:46:56
你博客字体真大。。
From 自由人 on 2010-07-24 00:07:25
呵呵 以前觉得inove的字体小 看着不舒服就给调大了
From 飞晏 on 2010-07-24 00:07:45
程序用母版页会有一些问题
我还是喜欢简单一些 不要太依赖微软
From 记忆盒子 on 2010-07-24 06:40:36
.net都只能使用一个form,你怎么写了2个form?
From ifenwen on 2010-07-24 08:59:58
逐一排除 解决问题
From 自由人 on 2010-07-24 10:44:25
代码HTML直接拖进来的,而且两个内容页一个问题明显另外一个基本上看不出就没想到是form
From iamlukas on 2010-07-24 15:18:02
删掉form~~· :(9): :(9): :(9): :(9):
From 小江博客 on 2010-07-24 23:28:41
过来学习下!!
From 二十六公斤 on 2010-07-27 04:23:33
暂时没用ie8 FX迷·路过 :(16):
From Afio on 2010-07-27 17:53:33
IE8。。。。。几百年没打开过了 :(3):
From 园子 on 2010-07-27 19:23:54
原来IE8也是这么的不好用啊。
From 自由人 on 2010-07-27 22:07:22
其实也这也不算是IE8的罪过,根源是form嵌套,这本身就是不规范的
From 阿七 on 2010-07-29 12:09:15
一直没考虑过IE8.. :(6):
From sky on 2010-07-29 16:42:12
IE8只是偶尔测试一下用一下的
From 龙崽 on 2010-07-30 14:19:28
貌似图片显示不出来。。。
最近电脑坏了,来占座,哈哈哈
From Dorole on 2010-08-04 13:49:34
貌似form嵌套本身就不能这么用,尤其是模板页,以前也遇到过。
From 自由人 on 2010-08-04 17:31:49
对的,form本身就不能嵌套,只是刚开始把原因都放在了母版页上