css table布局介绍

table表格控件可以通过table-layout属性来设置其布局,该属性有三个值:auto、fixed。

  • auto:默认行为,表格及单元格的宽度取决于其包含的内容,不可控性大,而且渲染速度较慢。
  • fixed:水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。表格的宽度由表格所设定的宽度和第一行所有列的宽度决定,渲染速度较快。

一些示例:

1)table-layou=fixed,如果放置块状元素超过td的宽度,如何设置滚动条?

这时尽量不要在td里写overflow: auto; 因为这样在IE6,7不会出现滚动条的,最好的办法是套一个div,宽度设置成100%,别切设置overflow:auto。如下:

<table style="width: 600px;border-collapse: collapse;table-layout: fixed;" >
 <tr>
   <td style="width: 200px;">
    <div style="width: 100%;overflow: auto;">
       <div style="width: 300px;height: 100px;background-color: red;"></div>
    </div>
   </td>
   <td >我是自由宽度</td>
 </tr>
</table>

这样,在单元格中会出现一个滚动条。

2)table-layou=fixed,如果单元格内容过长,如何设置自动换行?

table表格中的内容如果是中文,一般情况下都会自动换行。但如果内容是英文或数字(url),内容过长时文字会飘到单元格之外,也就是内容不会自动换行。例如:

这时通过设置属性word-wrap:break-word;和word-break:break-all;一起使用,可以做到内容自动换行的效果。

word-wrap属性:允许长单词或 URL 地址换行到下一行(是否允许换行)

  • normal    只在允许的断字点换行(浏览器保持默认处理)。
  • break-word    在长单词或 URL 地址内部进行换行。

word-break 属性规定自动换行的处理方法(自动换行的方法):

  • normal    使用浏览器默认的换行规则。
  • break-all    允许在单词内换行。
  • keep-all    只能在半角空格或连字符处换行。

看一个例子:

<table style="width:800px;table-layout: fixed;" >
	<tr>
		<td style="width:80px">test</td>
		<td style="width:720px;word-wrap: break-word;word-break:break-all;" >
		...超长内容...
		</td>
	</tr>
</table>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路人儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值