html - 如何在不创建滚轮的情况下让 div 填充屏幕的剩余高度?
问题描述
我正在启动一个 WebGL 项目,并使用 Bootstrap 5 在顶部创建了一个功能性 NavBar。我正在尝试用画布填充剩余空间,我将在其中渲染我的作品。但是height: 100%;
,在我看来,使用 , 似乎是在尝试不包括 NavBar 并且在屏幕下方太远,从而创建了滚轮。
我正在创建一个此处显示的工作示例https://jsfiddle.net/cL40tzg9/6/这将说明我的意思。我只是想创建一个 NavBar 并将剩余空间与我的画布一起使用,以防止任何不必要的滚动。我在这里做错了什么?谢谢
JavaScript 是(缩小一点),
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand h1" style="cursor: default"> example </a>
</div>
</nav>
<canvas id="scene_container"> </canvas>
CSS是,
html, body {
height:100%;
width: 100%;
margin: 0;
padding: 0;
background-color: transparent;
}
#scene_container {
width: 100%;
height: 100%;
background: transparent;
z-index: 0;
}
解决方案
将画布设置为全高减去导航高度的简单 Flex 方法可能看起来有点像这样。下面使用 css var--nav-height
方便起见,并应用背景颜色来说明效果。
:root{
--nav-height:3rem;
}
html, body {
height:100vh;
max-height:100vh;
width: 100%;
margin: 0;
padding: 0;
background-color: transparent;
}
body,body *{
box-sizing:border-box;
margin:0;
}
body{
display:flex;
flex-direction:column;
}
nav{
height:var(--nav-height);
min-height:var(--nav-height);
max-height:var(--nav-height);
width:100%;
flex:1;
background:yellow;
}
canvas{
width:100%;
height:calc( 100vh - var(--nav-height) );
flex:100;
background:pink;
}
<nav class='navbar navbar-expand-lg navbar-light bg-light'>
<div class='container-fluid'>
<a class='navbar-brand h1' style='cursor: default'> example </a>
</div>
</nav>
<canvas id='scene_container'></canvas>
推荐阅读
- amazon-web-services - 域未指向我在 aws lightsail 中的静态 IP 地址
- java - 将检索到的浮点值从外部文件转换为浮点数组。使其与方法匹配
- postgresql - PostgreSQL:通过未索引的列或其他表删除更快的是什么?
- java - 如何使用 Angular 调用基于 SAML(http-post 绑定)的 REST API?
- android - 如何在 Android Q 中请求外部文件访问权限?
- java - 如何从 src 文件夹调用测试类并使用 maven 构建
- google-assistant-sdk - 协议缓冲区通过 HTTP 调用 Google EmbeddedAssistant API 时频繁返回 HTTP 错误代码 502
- python - 尝试使用 pyoai 连接到 OAI 提供程序时如何修复 python 中的 HTTP 错误 404
- python - 使用 python 和烧瓶的多个 SQL 查询
- java - Docusign java 集成出现错误“http://java.sun.com/jsp/jstl/core 无法解决”