2010-11-22 56 views
1

只是在ie7渲染中发现奇怪的问题(可能是以前的其他版本)。 如果我在td里面输入,它会创建高度超过其他浏览器(ff,ie8,chrome)的单元格。 重设所有边距,移除填充,将单元格移至零。唯一可能的方法是使它们等于我发现的 ,它是以像素为单位指定所有tds的高度。但在我看来,这很丑陋。ie7 td与输入额外的垂直空间

这里是HTML:

<!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> 
    <link type="text/css" href="styles/main.css" rel="Stylesheet" /> 
</head> 
<body> 
    <br /> 
    <table cellspacing="0" cellpadding="0" border="0" class="details-table"> 
     <tr class="details-row"> 
      <td> 
       <label for="txtFirstName">First Name</label> 
      </td> 
      <td> 
       <label for="txtFirstName">Last Name</label> 
      </td> 
     </tr> 
     <tr class="alt-details-row"> 
      <td> 
       <label for="txtFirstName">First Name2</label> 
       <input type="text" class="details-input textField" id="txtFirstName2" name="txtFirstName2" /> 
      </td> 
      <td> 
       <label for="txtLastName2">Last Name2</label> 
       <input type="text" class="details-input textField" id="txtLastName2" name="txtLastName2" /> 
      </td> 
     </tr> 
     <tr class="details-row"> 
      <td> 
       <label for="txtFirstName3">First Name3</label> 
       <input type="text" class="details-input textField" id="txtFirstName3" name="txtFirstName3" /> 
      </td> 
      <td> 
       <label for="txtLastName3">Last Name3</label> 
       <input type="text" class="details-input textField" id="txtLastName3" name="txtLastName3" /> 
      </td> 
     </tr> 
    </table> 
</body> 
</html> 

这里是CSS:

html, 
body, 
form, 
table, 
tr, 
td 
{ 
    margin: 0; 
    padding:0; 
    border: 0; 
    outline: 0; 
    font-size: 100%; 
} 


body 
{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px ; 
} 

input.textField 
{ 
    margin:0px; 
    padding:0px; 
    border: 1px solid #BFBFBF; 
    height: 17px; 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px ; 
} 

.details-table 
{ 
    width:100%; 
    color: #666 
} 

.details-table tr.details-row, 
.details-table tr.details-row td 
{ 
    background: #ebe4bc; 
} 

这里是截图: alt text

回答

1

我不认为你可以通过改变修复高度为td输入元素,因为总是存在在IE7模式下为该输入生成1个自动偏移量。在IE8或其他常用浏览器中,不会生成额外的1偏移量。

我认为这是IE7中的一个错误。

2

浮动:留在元素上可能有帮助