效果:遇到一个问题,想用table展现一个表格。因为是手机应用页面,且列数不固定。当列数太多,超出屏幕时,tbody内可以横向滑动。
意外:但发现td设置了width。但是不会起作用,而是根据屏幕宽度自动平分了宽度。比如100px,5个td。每个自动设成了20.
效果:遇到一个问题,想用table展现一个表格。因为是手机应用页面,且列数不固定。当列数太多,超出屏幕时,tbody内可以横向滑动。
意外:但发现td设置了width。但是不会起作用,而是根据屏幕宽度自动平分了宽度。比如100px,5个td。每个自动设成了20.
要想实现表格列宽固定,并希望在移动端可以横向滚动,给td的宽度是不可以的,而应该使用<colgroup>和<col>标签组合起来使用。以下代码可以参考
<style>
body{
margin: 0;
padding: 0;
}
.table-responsive{
max-width: 375px;
overflow: auto;
margin: 50px auto;
}
table{
width: 100%;
border-collapse: collapse;
border-spacing: 0;
border: 1px solid #999;
/* 必须要设置为fixed,这样列宽就可以由表格宽度和列宽度设定了 */
table-layout: fixed;
}
th,td{
border: 1px solid #999;
}
td{
padding: 0 8px;
}
</style>
<body>
<div class="table-responsive">
<table>
<!-- 关键代码 start -->
<colgroup>
<col width="150">
<col width="150">
<col width="150">
</colgroup>
<!-- 关键代码 end -->
<thead>
<tr>
<th>语文</th>
<th>数学</th>
<th>英语</th>
</tr>
</thead>
<tbody>
<tr>
<td>89</td>
<td>95</td>
<td>86</td>
</tr>
<tr>
<td>74</td>
<td>63</td>
<td>99</td>
</tr>
</tbody>
</table>
</div>
</body>
5 回答1.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
4 回答1.9k 阅读
2 回答1.4k 阅读✓ 已解决
4 回答2.6k 阅读
html