table-layout的fixed属性

当你准备全面进军web标准时,有时候你是不是被表格的弄得焦头烂额呢?比如,原来使用“非法”的nobr现在要用什么来代替呢?今天,就让我来一个终极解决方案。
 
  或许你已经Google到white-space: nowrap可以实现nobr,不错,但关键还有一个,那就是table-layout. table-layout有两个值可以设定,预设的是auto. auto: 默认的自动算法。布局将基于各单元格的内容。表格在每一单元格读取计算之后才会显示出来。速度很慢。
 
  fixed : 固定布局的算法。在这算法中,水平布局是仅仅基于表格的宽度,表格边框的宽度,单元格间距,列的宽度,而和表格内容无关。
 
  为了让表格布局固定住,我们需要table-layout:fixed.假设没有fixed,把你的分辨率减小到一定程度,你会发现white-space: nowrap是不会生效的。
 
  技巧:为了使表格能够适应液态布局(liquid layout,即可伸缩性),不建议你为表格设置绝对宽度,使用相对宽度如百分比是不错的选择。另外,把宽度相对固定的内容(比如时间格式)格设置绝对宽度,非固定的内容格不设置任何宽度,只需给予其设置white-space: nowrap,虽然在小分辨率的情况下会溢出,但依据某些观点看来,这比折行更美观。
 
  当然我的观点不这样,如果是属于我自己能控制的东西,我是不会要white-space: nowrap的,让用户能够清晰地看到内容,我认为比美观更重要。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title></title>

 </head>

 <body>
  <table border=1 width=300 cellpadding="5" cellspacing="1" style="table-layout:fixed">
  <tr>
	<td nowrap style="overflow:hidden; text-overflow:ellipsis;">中华人民共和国中华人民共和国中华人民共和国</td>
	<td nowrap style="overflow:hidden; text-overflow:ellipsis;">中华人民共和国中华人民共和国中华人民共和国</td>
	<td nowrap style="overflow:hidden; text-overflow:ellipsis;">中华人民共和国中华人民共和国中华人民共和国</td>
  </tr>
  </table>

  <br/>
  <table width="550" border="0" cellpadding="5" cellspacing="1" bgcolor="#007373" style="table-layout:fixed">
  <tr>
    <th nowrap bgcolor="#159AA2" style="overflow:hidden; text-overflow:ellipsis; color:#FFFFFF;">List1</th>
    <th nowrap bgcolor="#159AA2" style="overflow:hidden; text-overflow:ellipsis; color:#FFFFFF;">List2</th>
    <th nowrap bgcolor="#159AA2" style="overflow:hidden; text-overflow:ellipsis; color:#FFFFFF;">List3</th>
  </tr>
  <tr>
    <td nowrap bgcolor="#E8FFFF" style="overflow:hidden; text-overflow:ellipsis;" title="用CSS实现超长字段被省略的简单方法用CSS实现超长字段被省略的简单方法">用CSS实现超长字段被省略的简单方法</td>
    <td nowrap bgcolor="#E8FFFF" style="overflow:hidden; text-overflow:ellipsis;" title="用CSS实现超长字段被省略的简单方法用CSS实现超长字段被省略的简单方法">用CSS实现超长字段被省略的简单方法</td>
    <td nowrap bgcolor="#E8FFFF" style="overflow:hidden; text-overflow:ellipsis;" title="用CSS实现超长字段被省略的简单方法用CSS实现超长字段被省略的简单方法">用CSS实现超长字段被省略的简单方法</td>
  </tr>
</table> 

 </body>
</html>

你可能感兴趣的:(layout)