使用100vh时溢出

问题描述 投票:0回答:1

我将网格视图高度设置为 100vh。我的网格视图由两个 div 组成,第一个 div 用于图像,第二个 div 用于表单。这是我的 CSS 代码的一部分:

* {
    box-sizing: border-box;
}

html {
    font-family: "Urbanist", sans-serif;
}

body {
    margin: 0;
    background-image: url(../img/bgImg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    color: rgba(255,255,255,1);
}

.grid-view {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 50px;
    height: 100vh;
}

img {
    border-radius: 20px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

问题是当我缩小它时它会溢出,而当我放大内容时它会很好地适应整个页面。这是它的图片。

我的目的是将整个内容放入一页(没有垂直滚动),即使屏幕分辨率的大小不同。

我的意见是我确实检查了网站,我认为导致溢出的是图像,我尝试将高度更改为 min-height 100vh 但仍然不起作用。我不确定我的观点是对还是错。

谢谢你。

java html css jsp servlets
1个回答
0
投票

这是您应该在 CSS 中更改的内容

/* Add overflow:hidden to your html element to prevent scrolling */
html {
    font-family: "Urbanist", sans-serif;
    overflow: hidden;
}

/* Make the body element 100vh */
body {
    margin: 0;
    background-image: url(../img/bgImg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    color: rgba(255, 255, 255, 1);
    height: 100vh;
}

/* make grid-view's height 100% */
.grid-view {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 50px;
    height: 100%;
}

/* 
 * Change the image to have max-height set.
 * You want it to be 100vh minus your padding on top and bottom.
 */

img {
    border-radius: 20px;
    width: 100%;
    height: 100%;
    max-height: calc(100vh - 100px);
}

您可能还想选择一种新的 vh 单位,例如移动设备的 svh、dvh 或 lvh。这些将解决移动浏览器或底部标签栏上消失的 URL 栏的问题。 svh 将为您提供这些附加元素内的高度,lvh 将为您提供没有它们的大小,dvh 会在它们出现或消失时动态变化。使用普通的 vh 单位作为后备,如下所示:

img {
  max-height: calc(100vh - 100px);
  max-height: calc(100dvh - 100px);
}
© www.soinside.com 2019 - 2024. All rights reserved.