【发布时间】:2021-01-20 20:33:47
【问题描述】:
我有一个页面,其中有一个 250 像素宽的侧边栏和一个 100% 宽度的主要内容容器,用于填充剩余空间,位于侧边栏旁边。这些项目是具有父 flex 容器的 flex-children。
HTML:
<div className="flex-container">
<div className="sidebar">sidebar</div>
<div className="main-container">main container</div>
</div>
CSS:
.flex-container {
display: flex;
flex: 1;
}
.sidebar {
width: 250px;
}
.main-container {
width: 100%;
}
这正常工作,但在一个页面上,我有一个表格,它可以拉伸主内容面板,使页面的宽度超过 100%,从而导致水平滚动条。
为了解决这个问题,我尝试使用以下代码计算内容容器的固定宽度:
.main-content {
width: calc(100vw - 250px);
}
这主要是可行的,但计算偏离了 17 像素,导致了一个较小但仍然存在的水平滚动条,我不知道为什么。这是因为 vw 计算中包含的滚动条宽度吗?
有没有办法解决这个问题?
如果我取主容器的宽度并从内部视口宽度中减去它,它会留下 233 像素的空间,小于应有的 250 像素,并有 17 像素的余数。
我正在使用 Google Chrome 进行测试,但任何解决方案都应该兼容跨浏览器。
【问题讨论】:
标签: css