[TOC]
注意:網頁默認不添加擴展的表現是 `viewport-fit=contain`,需要適配 iPhoneX 必須設置 `viewport-fit=cover`,這是適配的關鍵步驟。
# css
`constant()` 在 iOS11.2 之后就不能使用的,但我們還是需要做向后兼容,像這樣:
```css
padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */
padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */
```
注意:`env()` 跟 `constant()` 需要同時存在,而且順序不能換。
# JS
有些接口必須用 js 去處理,不能用 css 樣式實現,那么就可以這樣做
```js
if($(window).width() === 375 && $(window).height() === 724 && window.devicePixelRatio === 3){
? ? ? ? $(".phonex-pb").css("padding-bottom","34px");
}
```
```js
function isIPhoneX(fn){
let u = navigator.userAgent;
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios 系統
if (isIOS) {
if (screen.height == 812 && screen.width == 375){
//是iphoneX
}else{
//不是iphoneX
}
}
}
```
# 參考
[適配 iPhoneX](https://aotu.io/notes/2017/11/27/iphonex/)
- 前言
- 中文字體
- 移動Web適配方案
- !移動Web基礎!
- 詳解適配相關概念
- 移動開發之設計稿
- 移動適配方案(一)
- 移動適配方案(二)
- vw+rem 實現移動端布局
- 移動端適配之雪碧圖(sprite)背景圖片定位
- 適配 iPhoneX
- 前端開發實戰
- 打造自己的前端開發流程(Gulp)
- flexible.js案例講解
- viewport 與 flexible.js解讀
- 圖片與字體
- 踩過的坑
- 瀏覽器默認樣式
- 300ms點擊延遲和點擊穿透
- ios css
- CSS 常見問題
- Ionic v1混合開發
- Native App、Web App 、Hybrid App?
- ionic項目結構
- 混淆加密
- 解決問題
- cordova
- 環境配置
- 打包發布
- 問題
- 移動前端開發優化
- Web開發之抓包
- ===web移動開發資源===
- H5組件框架
- 調試集合
- 簡單h5調試
- whistle
- devtools-pro