我正在尝试创建一个表。我希望它的第一列得到修复。我已经使用以下方法完成了
tr > th:first-child,
tr > td:first-child {
position: sticky;
left: 0;
}
这个效果很好。我想让所有标题也固定。上面的代码仅使第一个固定。我想连续修复所有 th 和第一个 td 。以及 tr 中除第一个之外的所有 td,可滚动。
这是我到目前为止所提供的表格和CSS。
<style>
.container {
margin: 0px;
padding : 0px;
overflow-x: auto;
}
table {
font-family: "Open Sans", sans-serif;
position: relative;
border-collapse: collapse;
border-spacing: 0;
table-layout: auto;
width: 100%;
border: none;
border-radius: 0.5rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
thead tr {
color: #ececec;
font-size: 1rem;
font-weight: 500;
text-align: left;
}
th {
background: #eefecd;
padding: 0.75rem 1.5rem;
vertical-align: middle;
}
tbody tr:nth-child(odd) td {
background: #fff;
}
tbody tr:nth-child(even) td {
background: #ececec;
}
td {
text-align: left;
padding: 1.5rem 1.5rem;
vertical-align: middle;
font-size: 1.125rem;
font-weight: normal;
}
tr:last-child td:first-child {
border-bottom-left-radius: 0.5rem;
}
th:first-child {
border-top-left-radius: 0.5rem;
}
tr:last-child td:last-child {
border-bottom-right-radius: 0.5rem;
}
th:last-child {
border-top-right-radius: 0.5rem;
}
tr > th:first-child,
tr > td:first-child {
position: sticky;
left: 0;
}
</style>
<div class="container p-0 m-0">
<table>
<thead>
<tr>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
</tr>
<tr>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
</tr>
</tbody>
</table>
</div>
我可以通过在表格的
position: fixed
行上使用tr
来做到这一点,希望对您有帮助!
.container {
position: relative;
margin: 0px;
padding: 0px;
overflow-x: auto;
}
table {
font-family: "Open Sans", sans-serif;
border-collapse: collapse;
border-spacing: 0;
table-layout: auto;
width: 100%;
border: none;
border-radius: 0.5rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
thead tr {
color: #ececec;
font-size: 1rem;
font-weight: 500;
text-align: left;
}
th {
background: black;
padding: 0.75rem 1.5rem;
vertical-align: middle;
}
tbody tr:nth-child(odd) td {
background: #fff;
}
tbody tr:nth-child(even) td {
background: #ececec;
}
td {
text-align: left;
padding: 1.5rem 1.5rem;
vertical-align: middle;
font-size: 1.125rem;
font-weight: normal;
}
tr:last-child td:first-child {
border-bottom-left-radius: 0.5rem;
}
th:first-child {
border-top-left-radius: 0.5rem;
}
tr:last-child td:last-child {
border-bottom-right-radius: 0.5rem;
}
th:last-child {
border-top-right-radius: 0.5rem;
}
tr>td:first-child {
position: sticky;
left: 0;
}
thead>tr:first-child {
position: fixed;
left: 0px;
}
thead {
height: 42px;
}
<div class="container p-0 m-0">
<table>
<thead>
<tr>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
<th>DATA1</th>
<th>DATA2</th>
<th>DATA3</th>
<th>DATA4</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
</tr>
<tr>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
<td>Some values</td>
</tr>
</tbody>
</table>
</div>