关于Table的table-layout记录

57 阅读1分钟

table-layout: auto

每一个td会按照内容撑开宽度,如果有多余的宽度,按照下面规则分配

具体规则

  1. 满足所有列的最小宽度需求

  2. 如果还有剩余空间,按比例分配给各列

  3. 优先分配给内容较多的列 (会给内容长的列分配更多的剩余空间)

支持min-width 要设置在colgroup里设置

支持max-width, 但是要设置在td的子元素里

//min-width 支持 
<table style="table-layout: auto;"> 
   <colgroup> 
        <col style="width: 80px;"> 
        <!-- 固定宽度 --> 
        <col style="min-width: 150px;"> 
        <!-- 最小宽度 --> 
        <col> 
        <!-- 自动宽度 --> 
   </colgroup> 
   ... 
  </table> 
 //max-width 支持 
 <table style="table-layout: auto;"> 
     <tbody> 
         <tr> 
             <td><div style="max-width: 200px;">2132132133213</div></td> 
             <td></td> 
             <td></td> 
         </tr> 
     </tbody> 
     ...
</table>

table-layout: fixed,

默认会平均分配空间

不支持 minWidth和maxWidth, 支持width

with的分配规则:

  1. 百分比: 百分比基准(100%) = 表格总宽度, 30% 就是表格总宽度的 30%
  2. 固定宽度: 那就是固定宽度
  3. 剩余空间 = 表格宽度 - Σ(固定宽度) - Σ(百分比宽度)
  4. 没有设置宽度的列 = 剩余空间 ÷ 自动列数量