У меня есть настраиваемый выпадающий список, который использует абсолютное позиционирование для списка элементов. Это находится в строке таблицы. Когда область просмотра недостаточно широка, чтобы содержать таблицу, я хочу, чтобы она автоматически прокручивалась по оси X.
Проблема, с которой я столкнулся, заключается в том, что согласно спецификации c, если я добавлю overflow-x: auto;
к родительский контейнер и попробуйте установить overflow-y: visible;
, он устанавливает эту ось на авто. Это вызывает прокрутку оси Y.
Пример: https://codepen.io/afisher88/pen/mdJybaY
HTML
<div class="outer-wrapper">
<div class="inner-wrapper">
<table>
<thead>
<tr>
<th>One</th>
<th>Two</th>
<th>Three</th>
</tr>
</thead>
<tbody>
<tr>
<td>One</td>
<td>
<div class="custom-dropdown">
<button id="btn" type="button">Toggle dropdown!</button>
<ul>
<li>Option</li>
<li>Option</li>
<li>Option</li>
<li>Option</li>
<li>Option</li>
</ul>
</div>
</td>
<td><input type="text"/></td>
<td>WFaouhfgeaouhgaeoghuaegoauehgaoeguhaegouhaegoaehugaeoguhaeg</td>
</tr>
</tbody>
</table>
</div>
</div>
S CSS
.outer-wrapper {
background: #f2f2f2;
width: 500px;
margin: 0 auto;
overflow-x: auto;
overflow-y: visible;
}
.custom-dropdown {
position: relative;
width: 200px;
background: #fff;
&.open {
ul {
display: block;
}
}
button {
display: block;
border: 0;
box-shadow: 0;
background: #fff;
padding: 5px;
height: 30px;
}
ul {
position: absolute;
display: none;
top: 14px;
left: 0;
width: 100%;
background: #fff;
}
}