日期:2014-05-17  浏览次数:20675 次

ie6和7里的input

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
*{margin:0px; padding:0px}
table{ border-collapse:collapse; border-spacing:0}
</style>
</head>
<body>
<table>
<tr>
<td>
<input type="text" style="width:100px; height:50px; background:red; border:2px solid black" />
</td>
</tr>
<tr>
<td>
<input type="text" style="width:100px; height:50px; background:yellow; border:2px solid black" />
</td>
</tr>
<tr>
<td>
<div style="background:#138eee; width:100px; height:50px; border:2px solid black"></div>
</td>
</tr>
</table>
</body>
</html>


1. 可以看到 -> input的上下会多出一像素
2. 用 -> float:left可以解决这个问题
3. 请问是否有其它方法能解决这个问题,因为有时候一行内要写很多标签,浮动起来就比较麻烦
input ie html

------解决方案--------------------
这个貌似是td里的空格造成的,换成下面的试下
<td><input type="text" style="width:100px; height:50px; background:red; border:2px solid black" /></td>

------解决方案--------------------
我试了好多种方法都不行,看来只能用float了,后面再加个<div style="clear:both"></div>
------解决方案--------------------
border-spacing这个属性只有在border-collapse这个属性的属性值设置为sepeate时才有效。
------解决方案--------------------
引用:
试了下,没有出现楼主所说的那种情况,两个input之间的boder加粗了而已。

楼主说的是IE6/IE7会出现这个问题。我试了下,的确如此!

如果把input换成div则不会出现间隙,
所以可能是input元素在表格在IE6/IE7下的问题,
经测试,下面的代码可以解决这个间隙问题:

input{ margin: -1px 0; }