在 checkout 页面上,我在网站顶部做了一个覆盖,其中禁用了正文滚动,但在覆盖上启用了溢出.

但如果视区较小,则覆盖图上的内容将被剪裁.

如何避免这种情况?

我试图将overflow:auto添加到覆盖图中,但不起作用:

body {
  overflow: hidden;
}

#overlay.active {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  overflow: auto;
  background: yellow;
}
<div id="overlay" class="active">
  <div style="height:300px; background:white; padding:20px">
    content
  </div>
</div>

推荐答案

UPDATE

似乎在Content为的子项div上加margin: auto就可以解决这个问题:

#overlay > div { margin: auto; }

safealign-items会是一个很好的解决方案,但目前它只在Firefox上有效:

align-items: safe center;

示例:

body {
  overflow: hidden;
}

/* ???? Added on the child div */
#overlay > div {
  margin: auto;
}

#overlay.active {
  position: fixed;
  /* ???? Can use shorthand (Optional: not supported by older browsers and IE) */
  inset: 0;
  display: flex;
  justify-content: center;
  /* ???? Safe is only working on Firefox as of now  */
  align-items: safe center;
  padding: 20px;
  background: #fff;
  overflow: auto;
  background: pink;
}
<div id="overlay" class="active">
  <div style="height:300px; background:white; padding:20px">
    content
  </div>
</div>

Html相关问答推荐

如何格式化HTML文本,使其环绕关键字

将多个内联元素置于中心,而无需访问父级上的CSS

如何防止SVG图标出现断行?

如何使用bslb设置可导航页面侧边栏的样式

附加点的列表样式

如何在将文本垂直居中的同时将文本右对齐?

在将DevExtreme升级到版本23.2之后,到处都会生成一个Pesudo类,我在其中使用了<;DXi-Item Title=&Quot;&Quot;>;

如何影响flex项目中的flex-gap收缩顺序和文本换行顺序?

希望平稳过渡到悬停状态

UL 的行为就像它不属于任何类别

如何在悬停时使矩形按钮上的边框变圆

如何在CSS伪类函数中使用复合 Select 器:host-context()

在 flexbox 中使用 spacer 是否有效

使用修饰键微调 HTML 输入范围中的值

网页爬虫:使用时光机器进行数据采集

如何使用 Bootstrap Grid 系统修复大屏幕上图片和进度条之间的空白?

如何调整网格中单元格的高度?

如何将自定义图像插入 Shiny plot header?

项目的水平列表:倒数第二个项目居中,而最后一个项目占据所有剩余空间

如何向上移动图像并溢出图像的一部分而另一部分不溢出