[React] 아이폰 100vh 오류

2023. 12. 30. 15:55·React/실험실
반응형

모달창 등에서 position을 fixed를 주고 화면을 꽉 채우기 위해서 vh를 100을 주는 경우가 있다. 

안드로이드 또는 PC 화면에서는 문제가 없는데 아이폰에서 100vh를 사용하는 경우 사파리에서 아래에 웹사이트 바가 

생겨서 깨지는 경우가 발생한다. 

 

이때의 해결 방법으로 

window.innerHeight * 0.01 이라는 값을 세팅해서 선언해준다고 한다. 

그리고 document에 스타일 속성을 줘서 넣어준 다음 해결하는 방법이 일반적인 방법이다. 

let vh = 0;

useEffect(() => {
  vh = window.innerHeight * 0.01;
  document.documentElement.style.setProperty('--vh', `${vh}px`);
}, []);


// 사용
height: calc(var(--vh, 1vh) * 100);

 

이 방법을 사용해봤지만 해당 문제로 해결되지 않았다. 

 

또다른 방법으로 CSS를 사용해서 해결하는 방법이 있다고 한다. 

min-height: 100vh;
min-height: -webkit-fill-available; 

//

height: 100vh;
height: -webkit-fill-available;
height: fill-available;

 

이런 방법으로 해결되는 경우도 있지만 

나의 경우에는 해결되지 않았다...

( 원인을 알아내는게 중요하지만 아직 원인을 알아내지 못했음,, ) 

 

일반적인 방법으로 해결하지 못한 나로써는 새로운 방법을 찾을 수 밖에 없었다. 

찾아낸 방법으로는 Position을 사용하는 것이다. 

 

모달 등은 최 상위에서 fixed를 사용하는데, 이때 top, left, right, bottom을 0으로 주면 전체 영역을 차지한다. 

그렇게 되면 굳이 width / height를 주지 않고 전체 영역을 가지기 때문에 아이폰에서 영역 문제를 해결할 수 있다! 

반응형
저작자표시 비영리 변경금지 (새창열림)

'React > 실험실' 카테고리의 다른 글

[React] Vite 환경 구성하기  (0) 2024.02.28
[React] Atomic Design Pattern + Headless UI Pattern  (1) 2024.01.07
[React] Children  (0) 2023.12.10
[React] Effect가 필요하지 않을 수 있다.  (1) 2023.11.20
[React] Swiper 잘 쓰기 - AutoPlay Pause Resume  (1) 2023.11.04
'React/실험실' 카테고리의 다른 글
  • [React] Vite 환경 구성하기
  • [React] Atomic Design Pattern + Headless UI Pattern
  • [React] Children
  • [React] Effect가 필요하지 않을 수 있다.
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    영어회화
    덤프
    webpack
    네이버 부스트캠프
    알고리즘
    javascript
    다이소
    자바스크립트
    react
    프로그래머스
    Docker
    typescript
    redux
    ReactNative
    리얼클래스
    식물
    Babel
    Node.js
    CCNA
    바질 키우기
    타입스크립트
    next.js
    타일러영어
    리얼학습일기
    리액트
    CSS
    바질
    영어독학
    ChatGPT
    네트워크
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[React] 아이폰 100vh 오류
상단으로

티스토리툴바