当我在一个水平和垂直溢出的元素上指定 overflow-x: hidden
时,该元素除了隐藏水平溢出的内容外,还会获得一个垂直滚动条。我试过加入 overflow-y: visible
,甚至只是 overflow: visible
,但没有效果。
我是否误解了这些属性的作用? 我认为 overflow-x
根本不应该影响垂直溢出。
我试过的所有浏览器都出现过这种情况。
下面是一个演示效果的片段。我使用 <pre>
标签是因为它们是创建溢出内容的简单方法,但似乎任何标签都会出现这种情况。
pre {
height: 40px;
width: 150px;
margin-bottom: 50px; /* We need this so they don't overlap. */
}
#x-hidden {
overflow-x: hidden;
}
#y-visible {
overflow-x: hidden;
overflow-y: visible;
}
#visible {
overflow: visible;
overflow-x: hidden;
}
<pre>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur.
</pre>
<pre id="x-hidden">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur.
</pre>
<pre id="y-visible">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur.
</pre>
<pre id="visible">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur.
</pre>
W3C 规范表示:
“ overflow-x”和“ overflow-y”的计算值与它们指定的值相同,只是有些组合不可能是“可见的”: 如果一个指定为“可见的”,另一个是“滚动的”或“自动的”,那么“可见的”设置为“自动的”。
但是这里没有提到当 overflow-x
或 overflow-y
被设置为 hidden
时的情况,这对我来说意味着这种组合确实是可能的。