우리는 한다, 개발을.

Webkit의 문제점

⌛ 1 min

Webkit이란?

WebKit은 애플(Apple)이 개발한 웹 브라우저 렌더링 엔진으로, iOS의 Safari 및 모든 iOS 브라우저(Chrome, Firefox 포함)에서 사용됩니다.

WebKit과 다른 브라우저 엔진 비교

렌더링 엔진 사용 브라우저
WebKit iOS Safari, iOS Chrome, iOS Firefox (iOS의 모든 브라우저)
Blink 안드로이드 Chrome, Edge, Opera, 삼성 인터넷
Gecko 데스크톱 및 안드로이드 Firefox
iOS에서는 애플 정책으로 인해 모든 브라우저가 WebKit을 강제 사용해야 합니다.

즉, iOS 크롬도 내부적으로 WebKit을 사용하므로, 안드로이드 크롬과 동작 방식이 다를 수 있습니다.

️ WebKit으로 인해 iOS에서 발생하는 대표적인 문제

  1. 슬래시(/) 포함된 텍스트가 한 단어로 인식됨

    메가커피/빽다방/컴포즈 → WebKit에서는 한 단어로 처리하여 자동 줄바꿈이 안됨

    • 해결 방법: overflow-wrap: break-word; 적용 또는 메가커피 / 빽다방 / 컴포즈 (슬러쉬 양옆에 공백 추가)
  2. position: fixed가 iOS에서 흔들리거나 사라짐

    안드로이드에서는 정상 동작하지만, iOS Safari에서는 스크롤 시 요소가 움직이거나 사라지는 문제 발생

    • 해결 방법: position: sticky;로 변경
  3. iOS Safari에서 hover 상태가 유지됨

    터치 후 :hover 효과가 유지되어 UI가 깨지는 현상 발생

    • 해결 방법: @media (hover: hover) {} 적용
  4. download 속성이 iOS에서 동작하지 않음

    <a download>가 무시되고, 파일이 새 탭에서 열림

    • 해결 방법: fetch().blob()으로 다운로드 처리
  5. input 클릭 시 자동 확대되는 문제

    iOS에서 입력 필드를 터치하면 화면이 자동 확대됨

    • 해결 방법: font-size: 16px; 이상으로 설정

결론

WebKit은 iOS의 모든 브라우저에서 강제 사용되므로, 크롬/파이어폭스도 안드로이드와 다르게 동작함. 특정 CSS 및 JavaScript 기능이 iOS에서 다르게 적용되므로, 대응 방법이 필요함. iOS WebKit의 차이점을 이해하고 적절한 대응을 하면 보다 안정적인 UI를 제공할 수 있음.