📅  最后修改于: 2023-12-03 15:37:20.850000             🧑  作者: Mango
在 HTML 中,通常我们使用 <table>
元素来创建表格。但是当表格数据很宽时,如果不想水平滑动表格的情况下展示数据,我们可以使用将表格旋转来显示数据。下面我们来介绍在 HTML 中如何旋转表格。
我们可以使用 CSS 的 transform
属性来旋转表格。具体步骤如下:
transform:rotate(-90deg)
的样式,将表格旋转90度。nth-child
伪类来逆时针旋转每一个单元格。下面是示例代码:
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<tr>
<td>小明</td>
<td>18</td>
<td>男</td>
</tr>
<tr>
<td>小红</td>
<td>20</td>
<td>女</td>
</tr>
<tr>
<td>小刚</td>
<td>22</td>
<td>男</td>
</tr>
</tbody>
</table>
</div>
<style>
.table-wrapper {
overflow: auto; /* 防止表格溢出 */
}
.table-wrapper table {
border-collapse: collapse;
}
.table-wrapper th, .table-wrapper td {
padding: 8px;
border: 1px solid #ccc;
transform-origin: center center;
text-align: center;
}
.table-wrapper th {
font-weight: bold;
}
.table-wrapper tr:nth-child(even) {
background-color: #f2f2f2;
}
.table-wrapper tr:nth-child(odd) {
background-color: #fff;
}
.table-wrapper tr td:nth-child(1), .table-wrapper tr th:nth-child(1) {
transform: rotate(-90deg);
}
.table-wrapper tr td:nth-child(2), .table-wrapper tr th:nth-child(2) {
transform: rotate(-90deg);
}
.table-wrapper tr td:nth-child(3), .table-wrapper tr th:nth-child(3) {
transform: rotate(-90deg);
}
</style>
我们可以使用 JavaScript 代码自动将表格旋转90度,并添加样式。具体步骤如下:
下面是示例代码:
<div id="table-wrapper">
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<tr>
<td>小明</td>
<td>18</td>
<td>男</td>
</tr>
<tr>
<td>小红</td>
<td>20</td>
<td>女</td>
</tr>
<tr>
<td>小刚</td>
<td>22</td>
<td>男</td>
</tr>
</tbody>
</table>
</div>
<style>
#table-wrapper {
width: 400px; /* 表格宽度 */
height: 300px; /* 表格高度 */
overflow: auto; /* 防止表格溢出 */
position: relative;
}
#table-wrapper table {
position: absolute;
top: 0;
left: 0;
border-collapse: collapse;
}
#table-wrapper th, #table-wrapper td {
padding: 8px;
border: 1px solid #ccc;
transform-origin: center center;
text-align: center;
}
#table-wrapper th {
font-weight: bold;
}
#table-wrapper tr:nth-child(even) {
background-color: #f2f2f2;
}
#table-wrapper tr:nth-child(odd) {
background-color: #fff;
}
</style>
<script>
// 获取容器元素和表格
var tableWrapper = document.getElementById('table-wrapper');
var table = tableWrapper.getElementsByTagName('table')[0];
// 旋转表格单元格
for (var i = 0; i < table.rows.length; i++) {
var row = table.rows[i];
for (var j = 0; j < row.cells.length; j++) {
var cell = row.cells[j];
cell.style.transform = 'rotate(-90deg)';
cell.style.transformOrigin = 'center center'
}
}
// 表头加粗并旋转
var thRow = table.rows[0];
for (var k = 0; k < thRow.cells.length; k++) {
thRow.cells[k].style.fontWeight = 'bold';
thRow.cells[k].style.transform = 'rotate(-90deg)';
}
// 设置容器元素高度和宽度
tableWrapper.style.height = table.offsetHeight + 'px';
tableWrapper.style.width = table.offsetWidth + 'px';
</script>
以上两种方法都可以实现将表格旋转90度的效果,具体使用哪种方法可以根据实际情况来选择。