css - 覆盖嵌套元素的溢出

标签 css

我想避免用户在我的移动导航栏打开时滚动背景。到目前为止没问题,只需在 body 上设置 overflow: hidden 即可。问题是,如果导航栏有太多元素,它高于用户视口(viewport),它也不会滚动。所以我希望能够在导航栏内滚动,但不能同时在正文上滚动。

因此问题是:是否可以更改嵌套元素的溢出行为?

简化示例

// simple helper to add many list items
var menu = document.getElementById('menu');
for(var i=0; i<100; i++) menu.innerHTML += '<li>foo</li>';
.scroll-disabled { overflow: hidden; }
.scroll-enabled { overflow: visible; }
<body class="scroll-disabled">
  <ul class="scroll-enabled" id="menu">
    <!-- lots of li's // more than the display can show at once-->
  </ul>
</body>

最佳答案

您可以给元素固定高度并设置溢出时自动滚动:

.scroll-enabled {height: 100px; overflow:auto;}

关于css - 覆盖嵌套元素的溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925713/

相关文章:

javascript - 有没有办法在显然不支持此代码的浏览器中实现此效果?

css - :after 生成的内容上的 z-index IE8 错误

html - 告诉 input[type=text] 字段有一些 margin-left 使用所有剩余的宽度(比如宽度为 :auto does)? 的 div

twitter-bootstrap - 如何修复列中的 Bootstrap 4 内容响应?

html - 在特定分辨率下更改图像的高度

html - inline-block CSS 属性的对齐问题

css - 将站点指向目录后主页导航不更新的问题

html - 将鼠标悬停在其上方的 css 覆盖菜单中

javascript - jQuery scrollTop() 不起作用并返回零

javascript - 使用javascript或css更改html5中var的颜色和重量