Переполнение-y при прокрутке div
У меня есть div, который прокручивается горизонтально к некоторым кнопкам с помощью jQuery. Это работает нормально, проблема в том, что у меня есть вложенный div в прокручиваемом контенте, который становится обрезанным, когда он перекрывает контейнер. Мне нужно переполнение по оси х, но не по оси у. overflow-x: скрытый, overflow-y visible должен решить эту проблему, но не решает. Я работаю, если я удаляю переполнение, но мне нужен overflow-x для прокрутки div.
Упрощенный HTML / CSS ниже - без логики прокрутки, так как это не то, что здесь проблематично... должно быть легко?
Спасибо миллион:) Энди
<!DOCTYPE html>
<html>
<head>
<title>TestDiv</title>
</head>
<body>
<div style="width:100%; height:150px; border:1px solid blue">
TOP DIV
</div>
<div class="slide" style="height:150px; width:800px; border: 1px solid blue; background-color: pink;">
<div style="border: 1px solid blue; width:1200px; height:150px;" class="inner" id="slider">
<table cellspacing="0" cellpadding="0" border="2" style="table-layout:fixed; width: 1200px; height:150px">
<tr><td>AAAAAAAAA</td><td>BBBBBBBBB</td><td><div class="container"><div class="testDiv">XXX</div></div>CCCCCCCCC</td><td>DDDDDDDDDD</td><td>EEEEEEEEEE</td><td>FFFFFFFFF</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td><td>GGGGGGGGGG</td></tr>
</table>
</div>
</div>
<div style="width:100%; height:150px; border:1px solid green;">
BOTTOM
</div>
</body>
</html>
<style scoped="scoped">
.slide
{
position:relative;
overflow-x: hidden;
overflow-y:visible;
}
.slide .inner
{
overflow-y:visible;
position:absolute;
left:0;
bottom:0;
padding:0px;
}
.container
{
width: 20px;
height: 20px;
background-color: black;
position: relative;
}
.testDiv
{
width: 235px;
position: absolute;
z-index: 999;
left:20px;
top: -180px;
height: 200px;
background-color: greenyellow;
}
</style>
1 ответ
Проблема в том, что вы используете "фиксированное" позиционирование. Это будет работать только с "относительным" позиционированием. Чтобы преобразовать в относительное позиционирование, вы должны помнить, что местоположение Top относится к предыдущему братскому элементу, тогда как left относится к родительскому элементу.