Overflow-y: видимый не работает при переполнении-x: присутствует скрытый
Не работает должным образом в Chrome или Firefox. Есть ли способ обхода этого?
<!DOCTYPE html>
<html>
<head></head>
<body>
<h3>overflow-y:visible</h3>
with overflow-x:hidden
<div style="overflow-x:hidden;overflow-y:visible;width:100px;height:100px; position:relative;background:#666;">
<div style="top:20px;left:20px; width:420px;height:420px;position:absolute;background:#420;">
</div>
</div>
without overflow-x:hidden
<div style="overflow-y:visible;width:100px;height:100px;position:relative;background:#666;">
<div style="top:20px;left:20px; width:420px;height:420px;position:absolute;background:#420;">
</div>
</div>
</body>
</html>
http://jsfiddle.net/sMNyK/
Сценарий реальной жизни включает компоненты, которые обязательно должны иметь overflow-x: hidden, но это вызовет всплывающие меню, которые должны быть способны освободиться от элемента в направлении y. Должен ли я просто позиционировать эти меню вне своих родительских компонентов или есть лучшее исправление?
Ответы
Ответ 1
Это, вероятно, связано с проблемой, рассмотренной здесь: CSS overflow-x: visible; и overflow-y: скрытый; вызвав проблему прокрутки
Короче говоря, при использовании visible
для overflow-x
или overflow-y
и чего-то другого, кроме visible
для другого, значение visible
интерпретируется как auto
.
Ответ 2
Я думаю, что вы можете получить то, что хотите, с дополнительной упаковкой div
, которая скрывает, но не имеет набора position: relative
(см. скрипт):
<div style="overflow-y:visible;width:100px;height:100px;position:relative;background:#666;">
<div style="overflow-x:hidden">
ooooooooooooooooooooooooooooooooooooooooooooooo
<div style="top:20px;left:20px; width:420px;height:420px;position:absolute;background:#420;">
</div>
</div>
</div>