我正在尝试创建一个针对移动设备优化的 React 应用程序,并且正在使用 flexbox 进行大部分布局。我无法强制我的应用程序的主容器自动扩展到完整的设备高度。
我可以应用哪些规则,特别是我的 html 容器<div id="react-app"></div>
和我的主应用程序容器,<App></App>
以便它们始终伸展到全屏高度,即使他们的孩子不会强迫他们这样做?
我正在尝试创建一个针对移动设备优化的 React 应用程序,并且正在使用 flexbox 进行大部分布局。我无法强制我的应用程序的主容器自动扩展到完整的设备高度。
我可以应用哪些规则,特别是我的 html 容器<div id="react-app"></div>
和我的主应用程序容器,<App></App>
以便它们始终伸展到全屏高度,即使他们的孩子不会强迫他们这样做?
您可以使用
height:100vh
对于您的 App 组件,但它在 iOS Safari 上看起来并不完美。你也可以设置
html, body, #reactapp, .App {
height: 100%;
}
.App {
display: flex;
}
patlarpan 在这里的回答似乎是最简洁的解决方案:
您可以通过使用“vh”单位来实现这一点,它比使用百分比更有效,因为如果您希望孩子的身高为 100%,则无需将每个父身高都设置为 100%。
.columnContainer { display: flex; height: calc(100vh - 60px); }
这是从视口高度中排除 60 像素应用栏高度的示例。
我用这个替换了 patlarpan 示例中的高度线,因为我没有应用栏:
height: 100vh;
或者只是标签本身:
[数据react根] { ... }