当前位置: 首页 > 面试题库 >

CSS溢出-x:可见; 和溢出-y:隐藏;导致滚动条问题

何飞翰
2023-03-14
问题内容

假设您有一些样式和标记:

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指定的可见和隐藏价值。

(在Chrome 11和Opera(?)上观察到

我猜测一定有一些w3c规范或某些东西可以告诉我这种情况的发生,但是对我而言,我无法弄清楚为什么。

更新:-
我找到了一种方法,可以通过添加另一个包裹在周围的元素来达到相同的结果ul。一探究竟。


问题答案:

在Gecko,Safari,Opera中,与“隐藏”组合使用时,“可见”也变为“自动”(换句话说:当与“可见”以外的任何其他内容组合时,“可见”变为“自动”)。其中的Gecko 1.8,Safari 3,Opera 9.5非常一致。

也是W3C规范说:

“ overflow-x”和“ overflow-y”的计算值与它们的指定值相同,除了一些与“visible”的组合是不可能的:如果将一个指定为“
visible”而另一个指定为“ scroll”或“自动”,然后将“可见”设置为“自动”。如果“ overflow-y”相同,则“overflow”的计算值等于“ overflow-x”的计算值;否则为“ overflow-x”和“ overflow-y”的一对计算值。

简洁版本:

如果您使用visibleoverflow-xoverflow-y而不visible使用另一个,则该visible值将解释为auto



 类似资料:
  • 我目前有一个容器有一个最大高度800px。它还具有overflow-y:scroll。我想要完成的事情很简单(可能不是那么简单,所以我才问你们!)。 我想继续拥有这个溢出-Y卷轴。然而,我有内容被切断。我有一个具有类future-dropdown的div,我想让里面的内容有目的地覆盖这个容器。如果您看一下代码片段,我在div中的内容会因为溢出-y滚动而被截断。 我怎么能绕过这个还留着这个?我仍然需

  • 嗯,我也试着把它藏在身体里!还是不工作..?

  • 我的目标是创建一个具有特定条件的表: 如果显示宽度太小,无法容纳内容,请添加水平滚动条,并且不要收缩单元格。 如果显示高度太小,无法容纳内容,请添加垂直滚动条,并且不要收缩单元格。 我设法实现了这一点,但我有一个问题,如果显示宽度和高度都太小,不能适合内容,垂直滚动条是完美的,但水平滚动条隐藏在垂直溢出下。因此,如果用户希望看到整个第一行,他/她需要垂直滚动到末尾,然后水平滚动到末尾,最后垂直往回

  • 问题是当我将页面收缩到某个点时, 元素的顶部溢出,奇怪的是底部没有溢出。说清楚一点,我不想让这两个都溢出来。 这里有一个指向它的JSFiddle链接:https://jsfidle.net/maep468x/1 您将看到,当您运行它并将结果窗口缩小到大约350px时, 元素开始溢出。 我已经尝试从.main-content规则中删除我的line-height和font-size属性,但它仍然溢出。

  • 问题内容: 我一直在努力奋斗。我想绝对定位将在div中移动的图像,并希望剪切超出div的任何内容。这是问题的示例: 因此,我希望徽标的右边缘不显示。有想法吗? 问题答案: 由于图像的容器是绝对放置的,因此它不在“包含” div的范围之内。 您的选择是使用jQuery动态定位相对位置或调整绝对定位div的尺寸。

  • 问题内容: 我在w3schools上阅读了以下代码,但不了解该属性如何影响文本是否显示在右侧。 我知道它用于处理超出范围的内容,但不了解它在这种情况下如何应用。 问题答案: 我尽力消除混乱: 是一个块级元素,与元素一样(它们延伸到父宽度的100%)。这就是为什么默认情况下,如果在这些元素上未声明宽度或显示,它将显示在if 下方的原因。 现在在您的示例中,仅包含浮动元素。这使其折叠到一个高度(尽管如