前置条件:设定table宽度为固定值1000px,
<table style="width: 1000px;">
<tr>
<td style="width: 100px;">aaa</td>
<td style="width: 150px;">bbb</td>
<td style="width: 220px;">ccc</td>
<td style="width: 180px;">ddd</td>
</tr>
</table>
上面aaa占比100/(100+150+220+180)=0.15384,所以重新计算后的aaa宽度为153.84px,同理bbb:230.77px,ccc:338.45px,ddd:276.94px
<table style="width: 1000px;">
<tr>
<td style="width: 400px;">aaa</td>
<td style="width: 200px;">bbb</td>
<td style="width: 200px;">ccc</td>
<td style="width: 300px;">ddd</td>
</tr>
</table>
aaa、bbb、ccc、ddd的宽度均按4/11, 2/11, 2/11, 3/11的比例分配
<table style="width: 1000px;">
<tr>
<td style="width: 400px;">aaa</td>
<td style="width: 200px;">bbb</td>
<td style="width: 200px;">cccccccccccccccccccccccccccccccccccccccccccccccccccccccc</td>
<td style="width: 300px;">ddd</td>
</tr>
</table>
显然ccc宽度超出按比例分配的宽度,所以优先按内容分配,剩下的
aaa、bbb、ddd的宽度均按4/9, 2/9, 3/9的比例分配
<table style="width: 1000px;">
<tr>
<td style="width: 500px;">aaa</td>
<td style="width: 300px;">bbb</td>
<td style="width: 400px;">ccc</td>
<td>ddd</td>
</tr>
</table>
上面根据内容计算ddd宽度为32.7px,aaa占比5/12,宽度为401.39,bbb占比1/4,宽度244.45,ccc占比1/3,宽度为322.48。(以上宽度为页面测量的宽度,和实际计算的宽度有一丢丢偏差,不知道问题在哪里)
<table style="width: 1000px;">
<tr>
<td style="width: 200px;">aaa</td>
<td style="width: 300px;">bbb</td>
<td style="width: 400px;">ccc</td>
<td>ddd</td>
</tr>
</table>
以上ddd宽度为100px
<table style="width: 1000px;">
<tr>
<td style="width: 200px;">aaa</td>
<td style="width: 300px;">bbb</td>
<td>ccc</td>
<td>ddd</td>
</tr>
</table>
上面ccc为221.81px,ddd为278.19px
<table style="width: 1000px;">
<tr>
<td style="width: 200px;">aaa</td>
<td style="width: 300px;">bbb</td>
<td>ddd</td>
<td>ddd</td>
</tr>
</table>
上面最后两个ddd宽度均为250px
<table style="width: 1000px;table-layout: fixed;">
<tr>
<td style="width: 10px;">aaa</td>
<td style="width: 300px;">bbb</td>
<td style="width: 300px;">ccc</td>
<td style="width: 390px;">ddd</td>
</tr>
</table>
上面aaa会超出单元格并不会出现滚动条,和bbb重叠
解决:
<table style="width: 1000px;table-layout: fixed;">
<tr>
<td style="width: 10px;">
<div style="width: 100%;overflow: auto;">aaa</div>
</td>
<td style="width: 300px;">bbb</td>
<td style="width: 300px;">ccc</td>
<td style="width: 390px;">ddd</td>
</tr>
</table>
给aaa加一个div,设置宽度100%,over-flow:auto;可以对aaa增加滚动条