html - 绝对定位元素 100% 屏幕宽度

标签 html css

我正在尝试使用此处显示的当前标记制作下拉菜单 100% 屏幕宽度:https://jsfiddle.net/0nd5hL5h/

我已经尝试在 .dropdown-menu 类上使用以下样式,但它会导致水平滚动条,给 body overflow-x:hidden 不是一个选项。

width: 100vw;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;

如果您有任何建议或可以在不更改我当前标记的情况下提供解决方案,请分享!

最佳答案

从下拉列表中删除相对定位。

.dropdown{
    /*position: relative;*/
}

将下拉列表置于正文中心:

.dropdown:hover > .dropdown-menu{
    margin-left: 50%;
    width: 100vw;
    transform: translateX(-50%);
}

哦,我推荐使用 border-box

*{ box-sizing: border-box; }

编辑:

显然 100vw 占用了 entire viewport width考虑到。其中包括垂直滚动条的宽度。事后看来这是有道理的,但就规范而言似乎是一个糟糕的选择。

无论哪种方式,一个快速的补丁是禁用文档上的 overflow-y

html{overflow-y: hidden;}

关于html - 绝对定位元素 100% 屏幕宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41962027/

相关文章:

html - 为什么使用 z-index 不能让我把我的图像放在背景后面?

javascript - 基于DIV而不是整个页面的阅读位置指示器

javascript - Canvas 沿着路径绘制

javascript - 按类而不是 Id 获取元素

html - SASS - 生成 2 个不同的 styleguide.css

javascript - 下拉内容被隐藏在 iPad 和 Safari 中

html - 推特 Bootstrap : Text in navbar

javascript - JavaScript中如何通过setInterval方法实现TRANSITION效果?

javascript - 将 div 与响应式设计对齐

javascript - 隐藏元素后使用 jQuery 在 Firefox 中平滑调整页面大小