TD column width value not working with fixed table-layout
我有以下表结构:
1 2 3 4 5 6 7 8 9 10 11 12 | <table class="tableStyle"> <tr> <td width="20px">col1</td> <td width="50px">col2</td> <td width="50px">col3</td> <td width="15px">col4</td> <td width="25px">col5</td> <td width="20px">col6</td> <td width="20px">col7</td> <td width="20px">col8</td> </tr> </table> |
CSS类的定义是:
1 2 3 4 | .tableStyle{ table-layout:fixed; margin: 0 auto; width: 960px; } |
问题是,尽管我明确定义了每列宽度,但所有列都以相等的宽度显示。
为什么上述宽度值不起作用? 有什么建议可以使其与固定表布局一起使用吗?
" archaic"
但是,定义表的"最正确"方法是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <table> <colgroup> <col style="width:20px" /> <col style="width:50px" span="2" /> <col style="width:15px" /> <col style="width:25px" /> <col style="width:20px" span="3" /> </colgroup> <tbody> <tr> <td>col1</td> <td>col2</td> <td>col3</td> <td>col4</td> <td>col5</td> <td>col6</td> <td>col7</td> <td>col8</td> </tr> </tbody> </table> |
这对于大型表尤其有效,因为浏览器仅需读取
您必须使用:
1 | <td width="20"> |
要么
1 | <td style="width: 20px"> |
您应该将属性
在另一个Stackoverflow案例中,您也遇到类似的问题:
width属性不支持td的px,如果要以px表示宽度,则需要提供css,如下所示
1 | <td style="width: 20px"> |
不要将宽度放在td上,而是尝试使用css将其添加到th上。
例如,
的HTML
1 2 3 4 5 6 7 8 9 10 11 12 | <table> <tr> <th class="column-1">Heading 1</th> <th class="column-2">Heading 2</th> <th class="column-3">Heading 3</th> </tr> <tr> <td>TD 1</td> <td>TD 2</td> <td>TD 3</td> </tr> </table> |
的CSS
1 2 3 4 5 6 7 8 9 | .column-1 { width: 50%; } .column-2 { width: 25%; } .column-3 { width: 25%; } |
我遇到了完全相同的问题,并发现此资源很有帮助:
https://css-tricks.com/fixing-tables-long-strings/
建议这样的选择
的HTML
1 2 3 4 5 6 7 8 9 10 11 12 | <table class="tableStyle"> <tr> <td>col1</td> <td>col2</td> <td>col3</td> <td>col4</td> <td>col5</td> <td>col6</td> <td>col7</td> <td>col8</td> </tr> </table> |
的CSS
1 2 3 4 5 6 7 8 9 10 11 12 | .tableStyle{ table-layout:fixed; margin: 0 auto; width: 960px; background: #ddd; } td:nth-child(1n) { width: 20px; background: #876342; } td:nth-child(3n+1) { width: 100px; } |
演示
好像是为我准备的作品。请检查以下小提琴。
1 2 3 4 | .tableStyle{ table-layout:fixed; margin: 0 auto; width: 960px; } |
http://jsfiddle.net/9x56E/