包含div中的表

Mat*_*ell 14 html css

鉴于此示例(http://jsfiddle.net/A8gHg/,下面的代码),请尝试使窗口变小,以便示例的大小被压缩.

<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>
Run Code Online (Sandbox Code Playgroud)

您将注意到文本框(正确)不会换行到新行,因为它们位于单个<td>s中.

然而,div由蓝色表示的包含物不会完全包裹桌子.

如何使包含div完全包含孩子table

Mic*_*son 28

编辑:

添加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>
Run Code Online (Sandbox Code Playgroud)

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

  • 我认为`display:inline-block`应该也能正常工作; 它也不像'display:table`那样'hacky' (5认同)
  • 好的,但这只有在您提前修复表格元素的宽度时才有效:)。 (2认同)