您必须执行 3 个步骤
对于 iOS 11 状态栏和 iPhone X 标题问题
1.视口贴合封面
添加viewport-fit=cover
到视口的元<header>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0,viewport-fit=cover">
演示: https ://jsfiddle.net/gq5pt509 (index.html)
- 在您的
config.xml
内部添加更多飞溅图像<platform name="ios">
不要跳过这一步,这是使屏幕适合iPhone X工作所必需的
<splash src="your_path/Default@2x~ipad~anyany.png" /> <!-- 2732x2732 -->
<splash src="your_path/Default@2x~ipad~comany.png" /> <!-- 1278x2732 -->
<splash src="your_path/Default@2x~iphone~anyany.png" /> <!-- 1334x1334 -->
<splash src="your_path/Default@2x~iphone~comany.png" /> <!-- 750x1334 -->
<splash src="your_path/Default@2x~iphone~comcom.png" /> <!-- 1334x750 -->
<splash src="your_path/Default@3x~iphone~anyany.png" /> <!-- 2208x2208 -->
<splash src="your_path/Default@3x~iphone~anycom.png" /> <!-- 2208x1242 -->
<splash src="your_path/Default@3x~iphone~comany.png" /> <!-- 1242x2208 -->
演示: https ://jsfiddle.net/mmy885q4 (config.xml)
- 修复 CSS 上的样式
使用safe-area-inset-left
, safe-area-inset-right
, safe-area-inset-top
, 或safe-area-inset-bottom
示例:(在您的情况下使用!)
#header {
position: fixed;
top: 1.25rem; // iOs 10 or lower
top: constant(safe-area-inset-top); // iOs 11
top: env(safe-area-inset-top); // iOs 11+ (feature)
// or use calc()
top: calc(constant(safe-area-inset-top) + 1rem);
top: env(constant(safe-area-inset-top) + 1rem);
// or SCSS calc()
$nav-height: 1.25rem;
top: calc(constant(safe-area-inset-top) + #{$nav-height});
top: calc(env(safe-area-inset-top) + #{$nav-height});
}
奖励:is-android
您可以像或is-ios
在deviceready上添加身体类
var platformId = window.cordova.platformId;
if (platformId) {
document.body.classList.add('is-' + platformId);
}
所以你可以在 CSS 上做这样的事情
.is-ios #header {
// Properties
}