CSS - данные таблицы не идут под заголовком фиксированной таблицы - Overflow-X
В фиксированном заголовке таблицы мне нужно, чтобы весь текст проходил под фиксированным заголовком, а фиксированный заголовок не был смещен. Это работает для всего во второй таблице. Однако все содержимое во 2-й таблице находится в пределах ширины 98%.
В 1-й таблице у меня есть тэг TD, где white-space: nowrap хранит все содержимое в 1 строке, поэтому, когда происходит переполнение-x, фиксированный заголовок становится несогласованным. Как я могу исправить этот фиксированный заголовок, чтобы он соответствовал заголовку таблицы, а не был смещен?
Поэтому мне нужно, чтобы это работало, когда происходит Overflow-X: Auto. Я хочу горизонтальные свитки, так что это нормально, но это фиксированный заголовок, который становится беспорядочным.
Возможно, вам придется изменить размер вашей точки зрения, чтобы увидеть это
Я считаю, что это, вероятно, в CSS или JQUERY, где мне нужно внести корректировку, но не могу понять, как настроить....
JSFIDDLE https://jsfiddle.net/rbla/1Ljuycbe/61/
.up:hover {
cursor:pointer;
}
.tooltip2 {
position: relative;
display: inline-block;
border-bottom: 3px dotted black; /* If you want dots under the hoverable text */
text-decoration: none;
color: #00F;
}
img.cadre {
border: 3px solid #D2D1D1;
border-radius: 4px;
width: 125px;
height: 125px;
}
.tooltip2 .tooltiptext2 {
visibility: hidden;
width: 130px;
background-color: #fff;
color: #fff;
text-align: center;
padding: 5px 5px;
border-radius: 6px;
margin-left: 7px;
position: absolute;
z-index: 0;
}
.tooltip2:hover .tooltiptext2 {
visibility: visible;
cursor:pointer;
}
.tooltip2 .tooltiptext2 {
top: -5px;
left: 105%;
}
/* Left Arrow */
.tooltip2 .tooltiptext2::after {
content: " ";
position: absolute;
top: 15px;
right: 100%; /* To the left of the tooltip */
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent white transparent transparent;
}
table.blue.fixed {
z-index: 99;
}
Ответы
Ответ 1
$t_fixed.css("width",$this.outerWidth()+"px");
$this.parent().on( 'scroll', function(){
$t_fixed.css("left",(($this.parent().scrollLeft())*-1)+"px");
});
$( window ).resize(function() {
$t_fixed.css("width",$this.outerWidth()+"px");
});
Есть три вещи, которые вам нужно изменить, чтобы сделать эту работу.
1) Ширина таблицы должна соответствовать ширине в исходной таблице. Первая строка кода фиксирует положение столбца.
2) Когда вы прокручиваете таблицу, столбцы не будут совпадать, если вы не переместите клонированную строку заголовка с прокруткой.
3) ".resize" зафиксирует таблицу при изменении размера окна просмотра.
играть на скрипке
Ответ 2
Ну, решение вашей конкретной проблемы довольно просто; тем не менее, вы можете значительно улучшить свой код, например, вместо клонирования всей table
и удаления tbody
и т.д., но я думаю, что это выходит за рамки этого вопроса.
Просто добавьте эти несколько строк css:
.blue.fixed {
width:100%;
table-layout:fixed;
}
https://jsfiddle.net/1Ljuycbe/84/