起因: 中间内容需要减去顶部内容与底部导航原先使用 100 vh - 245px, 发现pc端浏览器显示正常,移动端除了Chrome与Safari 都显示正常。
定位: 排查得知,这Safari iOS 与Chrome >= 56 中的vh包括了搜索栏的高度。
解决: 采用 vh-check
npm i vh-check -s
在vue中main.js引入
import vhCheck from "vh-check";
vhCheck('browser-address-bar');
使用:
height: calc(100vh - var(--browser-address-bar, 0px) - 245px);
calc(100vh - var(--browser-address-bar, 0px))
表示100vh的实际高度, -245px
是业务需要
更多的注意事项请参考 vh-check的官方文档,描述的很清晰