假设您有一些样式和标记:
ul { white-space: nowrap; overflow-x: visible; overflow-y: hidden; /* added width so it would work in the snippet */ width: 100px; } li { display: inline-block; } <div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> </div>
当你看到这个。<ul>即使我为溢出 x/y 指定了可见和隐藏值,底部也有一个滚动条。
<ul>
(在 Chrome 11 和 Opera (?) 上观察到)
我猜肯定有一些 w3c 规范或某些东西告诉这会发生,但对于我的生活,我无法弄清楚为什么。
JSFiddle
更新:- 我找到了一种方法来通过添加另一个包裹在ul. 看看这个。
ul
经过一番认真的搜索,我似乎找到了我的问题的答案:
来自:http ://www.brunildo.org/test/Overflowxy2.html
在 Gecko、Safari、Opera 中,“isible”与“idden”结合时也变为“uto”(换句话说:“isible”与其他任何不同的东西结合时变为“uto” “可以”)。Gecko 1.8、Safari 3、Opera 9.5 非常一致。
W3C 规范也说:
“干verflow-x”和“干verflow-y”的计算值与它们的指定值相同,除了某些与“榲isible”的组合是不可能的:如果指定为“isible” ……另一个是“荣croll”或“榓uto”,则“榲isible”设置为“榓uto”。如果“干verflow-y”相同,则“干verflow”的计算值等于“干verflow-x”的计算值;否则为“干verflow-x”和“干verflow-y”的计算值对。
简洁版本:
如果您使用visiblefor one overflow-xoroverflow-y和其他东西visible,则该visible值被解释为auto.
visible
overflow-x
overflow-y
auto