프로젝트에서 상단 하단 position:fixed된 레이아웃 상태에서
아이폰X 웹뷰 대응 방법이다.
- 메타태그 뷰포트쪽에 viewport-fit=cover 를 추가
- padding-top: env(safe-area-inset-bottom);
2번의 속성값을 응용하는 건데 기본적으로
env(safe-area-inset-bottom); // IOS 11.0 이상 (신)
constant(safe-area-inset-bottom); // IOS 11.0 버전 (구)ios 11.2 업데이트에서 constant가 제거됨 env를 사용.
해당 값이 필요한 부분에 위값을 응용하여 집어 넣었다. (저는 커스텀한곳에 위 env,constant 둘다 삽입 했습니다;)
safe-area-inset의 기본값이 있어 값을 수정하고 싶으면
padding-bottom: calc(env(safe-area-inset-bottom) - 5px);
css의 calc를 사용하여 원하는 곳에 속성을 추가한후 값을 조절해서 사용하면 되겠다.
예제 )
- 하단에 고정 버튼이 있다고 할때.
수정 전
수정 후
2. 위의 수정 후사진처럼 변경을 하려면
// 기본 CSS
.button-fixed-bottom {
position: fixed;
right: 0;
bottom: 0;
left: 0;
background: #fff;
}
// 변경값을 줄 클래스
.button-fixed-bottom {
padding: 12px 16px; // 기본 값을 지정해 준후
padding: 12px 16px calc(constant(safe-area-inset-bottom) + 12px) 16px; // 변경이 필요한 부분은 하단의 패딩값이기 때문에 constant로 구버전 값을 넣고
padding: 12px 16px calc(env(safe-area-inset-bottom) + 12px) 16px;
} // env로 신규버전 값을 넣어준다.
3. constant / env 값을 둘다 추가해야 IOS 구버전, 신버전 대응이 가능하다
참고 : 링크
'웹프로그래밍 > CSS' 카테고리의 다른 글
cursor 의 종류 (0) | 2020.07.08 |
---|---|
Vertical scrolling in iOS not smooth (0) | 2020.07.08 |
CSS overflow scrolling and hidden scrollbar (iOS) (0) | 2020.07.08 |
안드로이드 웹뷰 스크롤바 안보일 때 (Android Webview scrollbar not visible, div overflow auto, scroll case) (0) | 2020.06.25 |
ios mobile 에서 터치시 background 색상 들어가는 문제 (0) | 2017.03.07 |