下面的代碼,是想在使用 table-layout:fixed 後,本意是想讓儲存格的寬度保持有效,在 IE 中測試,寬度設定是無效的:
<table style="table-layout:fixed;width:200px" border="1" cellspacing="1" cellpadding="1"> <tr> <td style="width:100px">1</td> <td colspan="2">2</td> </tr> <tr> <td>1.1</td> <td style="width:80px">2.1</td> <td style="width:20px">2.2</td> </tr></table>
下面給出解決方案,table-layout:fixed 樣式使用後,除第一行外,剩下的行中儲存格的寬度,是按照第一行中的儲存格寬度設定的,既然這樣,我們就設定一個隱藏的行來規定寬度:
<table style="table-layout:fixed;width:200px" border="1" cellspacing="1" cellpadding="1"><tr style="display:none"> <td style="width:100px"></td> <td style="width:80px"></td> <td style="width:20px"></td></tr><tr> <td>1</td> <td colspan="2">2</td></tr><tr> <td>1.1</td> <td>2.1</td> <td>2.2</td></tr></table>
這個方法,在IE6,IE7,IE8中都可以正確地顯示,但在非IE中,是沒起作用的。下面給出另外一種方法:
<style>td{border:1px solid red;}</style><table style="table-layout:fixed;width:200px" border="0" cellspacing="1" cellpadding="1"><tr style="height:0;"> <th style="width:100px"></th> <th style="width:80px"></th> <th style="width:20px"></th></tr><tr> <td>1</td> <td colspan="2">2</td></tr><tr> <td>1.1</td> <td>2.1</td> <td>2.2</td></tr></table>