在很久以前我们都是用 Table 在排版的,我相信现在还是有不少人还是在用 Table 进行排版而非现在较为流行的 CSS 排版,使用 Table 排版最大的好处就是版面在各浏览器中显示比较不会乱掉。但最大的缺点就是版面调整不像 CSS layout 那么方便,而且网页出现的时间比较长,版面的问题应该无解,但表格显示的速度却可以利用 table-layout 属性的设定达到目标。
CSS 的 table-layout 属性有两个可以设定的值:
· automatic 表格的总宽度决定于每一个储存格(Cell)的最大值。( 此为预设值 )
· fixed 表格的总宽度决定于表格 width 属性的定义,以及各栏位(Column) width 属性的定义
预设的 automatic 有个特性,就是当浏览器开始下载 HTML 资料时,从 <table> 一直读到 </table> 才会将网页显示出来,这是因为浏览器因为不确定 table 应该显示(Render)的宽度,因此必须等到表格都下载完成后才会显示资料。
所以你如果利用 <table> 设定整个网页版面,就会很容易发现网页下载时会先看到白白的一片底色,最后才会突然出现网页,这就是因为 table-layout 预设为 automatic 的关系。
所以,当你的表格拥有固定的宽度,例如版面宽度定义为 950px 时,只要将 <table> 的 table-layout 属性设定成 fixed,并且再设定 width 属性,就会明显感觉到表格在下载 HTML 的过程中不会等待 </table> 读完就会直接显示表格内容,速度将会差非常多。