【发布时间】:2019-12-30 20:14:39
【问题描述】:
在我的 React 项目中,我有一个用于登录页面的组件。具有“登陆”类的部分元素是组件的顶级元素。我希望背景图像占据屏幕的整个宽度,它确实如此 - 但是,封面图像下方有空白区域并出现滚动条。
设置html { overflow-y: hidden } 消除了这个问题,但我不能这样做,因为它会切断其他需要滚动条的组件的内容。 (React Router 用于显示组件——如果只有在仅显示登陆组件路由时我可以通过某种方式做到这一点......)
当我打开 Chrome 开发工具并将鼠标悬停在空白处时,会突出显示两件事:首先(向上)div#root,下面是html。
节元素的CSS:
.landing {
/* center center is background-position, cover is background-size (see https://stackoverflow.com/questions/31558245/declaring-all-css-background-properties-in-one-line-especially-background-size) */
/* bacground-position: 2-value syntax: one value defines X and the other defines Y. Default value is top left or 0% 0% */
background: url('./img/showcase.jpg') no-repeat center center / cover;
height: 100vh;
}
【问题讨论】:
-
你的页面检查员怎么说?
-
Michael_B:不,
body { margin: 0 }没有效果。 html 肯定会导致问题,因为html { overlow-y: hidden }删除了空白和滚动条。 -
html { overlow-y: hidden }之所以有效,是因为无论如何它都会阻止出现垂直滚动条。但这并不意味着你的风格问题在于html标签。