Есть много сообщений о том, как сделать тело таблицы HTML прокручиваемым.
К сожалению, мои навыки CSS кажутся слабыми, потому что, несмотря на все эти сообщения, мне было трудно с этим.
У меня есть таблица, которая будет заполняться динамически. Первоначально он может отображаться с пустыми строками. Все работает, за исключением того, что есть опасения, что набор данных может быть большим, поэтому существует требование, чтобы таблица имела фиксированную высоту и возможность прокрутки по оси Y.
HTML выглядит следующим образом. Я добавил много пустых строк, пока он только выкладывается.
<table id = "output" class = "gridtable">
<thead>
<tr >
<th></th>
<th>AA</th>
<th>BB</th>
<th>CC</th>
<th>DD</th>
<th>EE</th>
</tr>
</thead>
<tbody >
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</tbody>
</table>
Это текущий код CSS, который я пробую. Я бы хотел, чтобы ширина таблицы динамически оставалась на уровне 80% при изменении ширины окна.
table.gridtable thead {
display: block;
}
table.gridtable thead tr{
width: 100%;
}
table.gridtable tbody tr{
width: 97%;
}
table.gridtable tbody {
display: block;
height: 200px;
overflow-y: auto;
overflow-x: hidden;
width: 100%;
}
table.gridtable {
border-spacing: 0;
font-family: verdana,arial,sans-serif;
font-size:11px;
color:#333333;
border-width: 1px;
border-color: #666666;
width: 80%;
margin-left:auto;
margin-right:auto;
}
table.gridtable td {
border:1px solid #000000;
padding: 2px 4px;
height: 20px;
width: 16.6666%;
}
table.gridtable th {
background: #f2f2f2;
border-bottom: 1px solid #aaa;
border-top: 1px solid #aaa;
border-width: 1px;
border-color: #666666;
text-align: center;
padding: 8px 4px;
height: 20px;
width: 16.6666%;
}
Вот как это выглядит. Я хочу, чтобы изображение было выровнено по строкам тела. Также хотелось бы, чтобы столбцы располагались лучше.






Возможно, этот код может вам помочь.
Я заметил, что вы перезаписываете дополнительный код, нет необходимости писать элемент перед точкой, нужен просто класс, а граница может иметь сокращение в формате border: width style color.
.gridtable {
border-spacing: 0;
border-collapse: collapse;
font-family: verdana, arial, sans-serif;
font-size: 11px;
color: #333333;
border: 1px solid #666;
width: 80%;
margin-left: auto;
margin-right: auto;
display: table;
box-sizing: border-box;
}
.gridtable thead {
display: table;
min-width: 100%;
background: #f2f2f2;
border-bottom: 1px solid #666;
border-top: 1px solid #666;
text-align: center;
}
.gridtable th {
padding: 8px 4px;
width: 16.6%;
}
.gridtable tbody {
height: 200px;
display: block;
overflow-x: hidden;
overflow-y: auto;
}
.gridtable tr {
display: table;
width: 100%;
min-height: 20px;
}
.gridtable td {
border: 1px solid #000000;
padding: 2px 4px;
width: 16.6%;
height: 20px;
}<table id = "output" class = "gridtable">
<thead>
<tr>
<th>AA</th>
<th>BB</th>
<th>CC</th>
<th>DD</th>
<th>EE</th>
<th>FF</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>