html - 防止滚动条将内容推送到左侧的纯 css 方法?

标签 html css scrollbar overflow

有没有办法用纯css防止滚动条推送内容,或者整个页面向左? 我的意思是没有黑客或任何东西。

我尝试了两种 javascript 解决方案:

1)将body设置为overflow hidden,将body.offsetWidth保存在一个变量中,然后overflow visible,然后用当前的body.offsetWidth减去offsetWidth,并将差值应用到右边距。

2) 计算 offsetWidth 并在每次调整大小时将其应用于包装器 div。

什么没用:

1) 绝对位置。

2) 将所有内容都向左浮动是个坏主意。

3) 让滚动条可见(看起来很糟糕)。

4) Overflow-y hidden 使用户不友好。

最佳答案

有很多方法可以解决这个问题,但通常您不会介意向左推一点:

  1. overflow-y: scrollbody 并确保 始终有一个滚动条。

    <
  2. 利用视口(viewport)宽度包括滚动条而百分比不考虑滚动条的事实:

    一个。将 width: 100vw 赋给 body 元素,或者

    margin-left: calc(100vw - 100%) 赋给 html 元素,无论是否有滚动条,您都有一个固定区域可以处理。

  3. 甚至还有一个弃用 overflow: overlay在页面上绘制而不是将其向左移动的属性。

关于html - 防止滚动条将内容推送到左侧的纯 css 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35513264/

相关文章:

android - 使用 CSS 媒体查询独立于 Android 设备定位 iPhone

css - 我如何使此表单在所有浏览器上都相同?

css嵌入没有滚动条

css - Antiscroll native 滚动条在 IE 和 Firefox 中可见

html - firefox中滚动条的css问题

javascript - 点击带有数据集的按钮,会出现具有相同数据集的div

javascript - 单个 MutationObserver 对象可以观察多个目标吗?

javascript - 如何为 new Audio() 使用 flash 后端?

javascript - 如何验证复选框是否被选中?

javascript - 如何在两个不同的列中显示 map 结果