HTML таблица, горизонтальная прокрутка, которая отслеживает заголовки и вертикальная прокрутка - проблема с шириной текста
Хорошо, во-первых, извинения, если вы узнаете некоторые из моих предыдущих постов сегодня. У меня есть фрагмент HTML, который я написал, и это был единственный способ сделать это.
- Горизонтальная прокрутка, которая следует, удерживает thead, выровненный с телом, поскольку Вы перемещаете тело
- Вертикальная прокрутка, которая все еще держит thead в поле зрения.
Единственный способ сделать это - использовать две таблицы. Это работает и не стесняйтесь попробовать. Однако у меня проблема с тем, как ширина столбцов определяется размером текста внутри них, а не свойством width, которое я установил. Кто-нибудь может помочь?
Я просто хочу, чтобы ширина столбца означала ширину столбца
РЕДАКТИРОВАТЬ: причина ширины 1200 заключается в том, что внутри переполнения div фактический размер 8x 150px
<script type='text/javascript'>
function MatchScroll(SourceID, TargetID, DoIfMoz) {
if (DoIfMoz || navigator.userAgent.indexOf("Firefox") == -1) document.getElementById(TargetID).scrollLeft = document.getElementById(SourceID).scrollLeft;
}
</script>
<div id='HeaderTable' style='width:883px;overflow:auto;overflow-y:hidden;overflow-x:hidden;'>
<table border='1' id='HeaderTable' style='width:1200px;float:left;table-layout:fixed;'>
<thead style='text-align:left;'>
<tr style='display:block;margin-left:1px;'>
<th width='150' style='width:150px;'>t</th>
<th width='150' style='width:150px;'>t</th>
<th width='150' style='width:150px;'>tt</th>
<th width='150' style='width:150px;'>t</th>
<th width='150' style='width:150px;'>t</th>
<th width='150' style='width:150px;'>ttttt</th>
<th width='150' style='width:150px;'>ttttt</th>
<th width='150' style='width:150px;'>tt</th>
</tr>
</thead>
</table>
</div>
<div id='DataTable' style='height:300px;float:left;overflow:auto;overflow-x:auto;overflow-y:scroll;width:900px;' onmouseup="MatchScroll('DataTable','HeaderTable', true);" onmousemove="MatchScroll('DataTable','HeaderTable', false);" >
<table border='1' style='width:1200px;float:left;table-layout:fixed;'>
<tbody id='ClearDetails'>
<tr id='Row0' style='color:black;height:auto;display:block;'>
<td style='width:150px;'>1</td>
<td style='width:150px;'>1</td>
<td style='width:150px;'>1</td>
<td style='width:150px;'>1</td>
<td style='width:150px;'>1111111111</td>
<td style='width:150px;'>1</td>
<td style='width:150px;'>1</td>
<td style='width:150px;'>1</td>
</tr>
</tbody>
</table>
</div>
2 ответа
Я не знаю, насколько велик весь ваш проект, но есть плагин jquery dataTable для решения этой проблемы.
У него много вариантов работы с таблицами. Я предлагаю вам использовать файл "jquery.min", если вы просто хотите реализовать несколько опций.
В CSS width: x
задает минимальную ширину, поэтому браузер может расширить столбец, чтобы уместить текст в теле таблицы, которое превышает его.