Joh*_*mac 22 html css html-table
我有一张桌子:
<table border=1>
<caption>This is a table.</caption>
<tr>
<th>One</th>
<th>Two</th>
<th>Three</th>
</tr>
<tr>
<td>Four</td>
<td>Five</td>
<td>Six</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我希望它尽可能宽,同时仍然在每侧留下20px的余量.所以,我这样做了:
table{
border-collapse:collapse;
margin:20px;
padding:0;
width:100%;
}
Run Code Online (Sandbox Code Playgroud)
但它最终是父级的宽度加上左侧额外的20px边距,导致出现垂直滚动条.有没有办法让它比父母的宽度小40px而不添加另一个元素来包围它?
jsfiddle:http://jsfiddle.net/pvHNM/
Mic*_*ael 23
使用calc()计算预期宽度:
table {
margin: auto;
width: calc(100% - 40px);
}
Run Code Online (Sandbox Code Playgroud)
Juk*_*ela 12
根据CSS规则,width
属性设置元素内容的宽度,因此您需要将100%的可用宽度分配给表本身,并为边距分配一些额外的空间.这不可避免地导致水平滚动.
作为解决方法,您可以将表包装在div
元素中并margin
在其上进行设置.