이번에 아이폰X 로 갈아타고 노치(notch)영역에 최적화하는 작업을 진행한 내용을 정리합니다.
기존 웹사이트는 아이폰X에서 가로모드로 보면 좌우에 흰색 영역으로 막혀서 보이게 됩니다. 여기에 몇 가지 코드를 더하면 화면을 적절하게 채워서 보기 좋게 됩니다.
(ios 11.2 업데이트에서 constant가 제거되서 constant 대신 env를 사용하도록 수정했습니다.)
- 메타 태그에 viewport-fit=cover 추가
<!-- 기존 --> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=yes"> <!-- 수정 --> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=yes,viewport-fit=cover">
- 레이아웃의 각 블록마다 좌우 여백에 safe-area-inset-left, safe-area-inset-right 값을 더해서 보정합니다. 기존 좌우 여백값 env(safe-area-inset-left) 값을 더해서 아이폰x의 가로모드일때만 수치가 보정됩니다.
/* 공통 헤더 */ .logo { position: absolute; top: 14px; left: 25px; left: calc(25px + env(safe-area-inset-left)); } /* 우측 전체메뉴 버튼 */ .btn-menu-open { position: absolute; top: 0; right: 6px; right: calc(6px + env(safe-area-inset-right)); } /* 본문 내용 */ .common-content { margin: 0 auto; padding: 40px 25px 52px; padding-left: calc(25px + env(safe-area-inset-left)); padding-right: calc(25px + env(safe-area-inset-right)); } /* 공통 푸터 */ .common-footer { padding-top: 28px; padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }