2010-08-18 67 views
14

考虑到此示例(http://jsfiddle.net/A8gHg/,代码也在下面),请尽量缩小窗口使得示例的大小被压扁。div中的包含表

<div style="background-color:blue"> 
    <table style="width:100%"> 
     <tr> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
     </tr> 
    </table> 
</div> 

你会注意到,在文本框(正确地)不换到新的生产线,因为他们在个人<td>秒。

但是,如蓝色所示,包含div的表格未完全包装。

我该如何让包含div的孩子完全包含table

回答

26

编辑:

添加display:table到包装DIV。

<div style="background-color:blue;padding:5px;display:table;"> 
    <table style="margin:5px;"> 
     <tr> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
      <td> 
       <input type="text" style="width:150px"/> 
      </td> 
     </tr> 
    </table> 
</div> 

http://jsfiddle.net/A8gHg/11/

+1

OK,但这只适用于如果您修复表元素的宽度,提前:)。 – 2010-08-18 03:42:26

+0

是啊...更新 – 2010-08-18 03:42:50

+0

总是让我觉得很奇怪,将'display:table'添加到不是表格的东西,而是+1,因为这是有效的。 – 2010-08-18 03:45:10