html - 为什么这个高度为 100vh 的 div 没有覆盖整个视口(viewport)?

标签 html css

此代码中蓝色 div 的高度为 100vh,而红色 div 的高度为 5000px。由于 100vh 高度属性,蓝色 div 不应该扩展自身以覆盖整个视口(viewport)吗?

body {
  margin: 0;
}
<div style="position: absolute; left: 35%; width: 100px; height: 100vh; background-color: blue;">
</div>
<div style="position: absolute; left: 50%; width: 100px; height: 5000px; background-color: red;"></div>

我想由此实现的是,假设有一些文本在缩小窗口时溢出,那么我应该如何解决这种情况,以便 100vh 高度 div 再次覆盖新的窗口大小?

最佳答案

Viewport height 只是表示元素的高度将是视口(viewport)的百分比。视口(viewport)是您查看页面的窗口。因此,如果它是 1920x1080 屏幕,视口(viewport)高度将为 1080px 或任何浏览器窗口,如果屏幕底部有工具栏,它可能会更小。你遇到的问题是,如果你想让侧边栏跟随页面的主要内容,你需要忽略视口(viewport)并在它们周围都有一个包装器,如下所示:

.main-wrapper{
  display:flex;
}

aside{
   background:blue;
   color:#fff;
   width:200px;
}

main{
  background:green;
  height:5000px;
  flex:1
}
<div class="main-wrapper">
  <aside>Your sidebar</aside>
  <main>Your Main Content</main>
</div>

话虽如此,您可能想查看以下 fiddle Here .我已经使这个 fiddle 响应移动屏幕,因此您可能需要将输出窗口的大小调整得更大才能查看侧边栏布局。问题是您绝对在 divs 之外定位元素和修复元素,这是不好的做法。在您上面评论的示例中,您会遇到许多布局和 z-index 问题。 This fiddle 只是一个示例,但它应该为您提供一个关于如何考虑布局的良好引用框架。

关于html - 为什么这个高度为 100vh 的 div 没有覆盖整个视口(viewport)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55550007/

相关文章:

javascript - 使用两个背景图像并动态修改不透明度

html - 使输入的宽度因窗口调整大小而改变,并使用它之前的动态标签宽度

javascript - 登录表单保存密码数据反射(reflect)在其他一些表单密码类型中

html - Div 位于另一个 div 的一 Angular

html - 覆盖巨型下拉菜单的 slider

css - Oracle Apex 控制标准报告列的 CSS 布局

javascript - 通过表单将用户发送到付款 URL

jquery - Scrollmagic 部分删除示例出现问题

javascript - d3 : HTTP404 NOT FOUND error

javascript - 如何借助 Menucool JS 插件创建 SVG 工具提示?