前言
经常会有朋友遇到表格超出文章列表宽的情况,有些是从其他网页或者文档复制粘贴过来的,在电脑设备网页上都能很好的展示,但是在移动设备上或者低分辨率设备上却经常撑破列宽,很是影响美观和客户体验。这里就这个问题分享一下解决的方法。

教程
在<table>中插入样式
<table style="table-layout: fixed;" border="1" width="100%" cellspacing="0" cellpadding="2"> …… <tr> <th style="text-align: left;">适合行业</th> <th style="text-align: left;">模板主色</th> <th style="text-align: left;">适配终端</th> <th style="text-align: left;">建站服务</th> <th style="text-align: left;">下载对象</th> <th style="text-align: left;">最近更新</th> </tr> <tr>……</tr>
可以看到上面代码中关于定义table(表格)属性的代码是:
<table style="table-layout: fixed;" border="1" width="100%" cellspacing="0" cellpadding="2">
经常见到的非自适应宽度的代码,也就是在移动端会撑破列宽的代码则是:
<table style="height: 125px;" border="1" width="640" cellspacing="0" cellpadding="2">
看出来区别没有,关于style和width的设置不一样!
总结

在定义表格时,width(整个表格的宽度)不要设置为固定数值,定义为百分比类型,例如90%或者95%;再追加style="table-layout:fixed;",这样做可以使半角连续字符强制换行,不至于撑破列宽。需要注意的是,使用此参数后,不要轻易在tr(行)或td(列)中加入height属性,会使table不再被内容撑出适合的高度。做到这两点之后,你table(表格)在任何情况下都可以很好的自适应宽度显示了。
补充一下,上面定义table(表格)参数的意思,border:表格的线宽为1;cellspacing:表格内数据与表格间隔为0;cellpadding:单元格与单元格间隔为2。