css - 在没有 javascript 的悬停 div 上设置正文溢出(仅限 css)

标签 css popup overflow document-body

我制作了一个菜单,当禁用 javascript 时悬停时会“弹出”。然而,这工作正常,当菜单太大以适合视口(viewport)(窗口)时,菜单会显示滚动条。

当它在悬停时弹出时有两个滚动条,一个是窗口,一个是菜单。看起来非常丑陋,会使用户感到困惑。

在启用 javascript 的情况下,我将 .noscroll 类应用于正文,因此只有一个滚动条。

.noscroll { overflow:hidden !important; }

尝试仅使用 CSS 执行此操作但无法正常工作,尝试了以下几种方法:

.nav .panel:hover > body,
.nav .panel:hover > html {  overflow:hidden !important; } 
.nav .panel:hover #body { overflow:hidden !important; } /* body with id body */

菜单本身是固定位置的。我这样做的原因是为了确保菜单覆盖整个窗口,因为 height:100% 不想覆盖整个文档而且它非常难看。此外,搜索栏将始终可见。

怎样才能达到我想要的效果?

图片(点击鼠标右键查看大图): menuexamples

最佳答案

当前的 CSS 规则无法做到这一点。您只能将规则应用于指定元素的子元素,而不是父元素。参见 https://stackoverflow.com/a/1014958/1034613具体细节。目前,您必须坚持使用 Javascript。

关于css - 在没有 javascript 的悬停 div 上设置正文溢出(仅限 css),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336075/

相关文章:

css - 如何在 Firefox/IE 上隐藏导航栏溢出

html - 设置正确的行高以避免截断文本

javascript - 如何使用 jQuery 根据这些 HTML 元素的总高度将所有 HTML 元素包装在 DIV 中?

list - 在悬停的<li>标记内替代非法<br>或<p>的替代方法?

xcode - 弹出按钮菜单项

javascript - JS Popup 中断 javascript 的执行

javascript - 如何在html中显示特定文本的超链接

html - 如何通过css在<i>标签中设置文本正常

javascript - 样式 ="display:block;"适用于 Chrome 但不适用于 Safari

jquery - div 表现得像溢出 :hidden even when set to visible in IE7