찾다

 >  Q&A  >  본문

Chrome 모바일 웹에서 레이아웃/시각적 뷰포트가 변경된 후 제목을 시각적 뷰포트 위에 유지하는 방법은 무엇입니까?

이와 관련하여 여러 가지 질문이 있다는 것을 알고 있지만, 이러한 질문을 받은 이후 브라우저 팀이 변경을 했기 때문에 그 중 어느 것도 더 이상 유효한 것 같지 않습니다. 나는 이 문제에 대한 최신 해결책을 찾으려고 노력하고 있습니다.

목표

내 바람은 모바일 웹 브라우저를 사용할 때, 특히 사용자가 입력 필드에 초점을 맞추고 가상 키보드가 표시될 때 앱과 같은 경험을 위해 고정 헤더가 계속 상단에 유지되는 것입니다.

배경 컨텍스트

최근 Chrome 모바일 팀은 iOS의 Chrome 및 iOS의 모바일 Safari와 일관되게 모바일 웹 레이아웃과 시각적 표시 영역의 크기를 조정하는 방식을 변경했습니다.

David Fedor의 기사에 있는 이 GIF는 대부분의(전부는 아님) 모바일 브라우저의 현재 상태를 매우 간결하게 보여줍니다. 즉, 화면 키보드(OSK, 가상 키보드라고도 함)를 사용할 때 시각적 뷰포트가 "위로 이동"합니다. 초점이 있습니다.

제가 겪고 있는 가장 큰 문제는 OSK가 표시될 때 제목 요소를 시각적으로 상단에 유지할 수 없다는 것입니다. 상단 앱 바에 '저장' 형식의 기본 작업이 있는 경우 이는 큰 문제입니다. 이는 사용자 경험을 어수선하게 하고 고객이 좌절감을 느끼도록 하기 때문에 제 생각에는 작은 일이 아닙니다.

Chrome 팀에서 권장하는 VisualViewport API(env(keyboard-inset-height) 참조)를 사용해 보았으나 작동하지 않는 것 같아서 레이아웃에 ENV가 올바르게 설정되지 않은 등 이상한 일을 하고 있는 것 같습니다.

내 코드

너무 이상할 것은 없습니다. CSS 그리드를 사용하여 레이아웃을 제어하세요.

HTML

으아악

CSS 스타일

으아악

내가 얻은 것은 다음 두 개의 스크린샷이었습니다. 전체 페이지 중 하나는 내가 원하는 레이아웃이고, 두 번째는 아래쪽 근처의 입력에 커서를 놓으면 전체 시각적 뷰포트가 위로 "밀어져" 제목이 위치를 벗어나게 됩니다. 화면.

전체 화면 입력 중심

현재 제목이 항상 시각적 뷰포트 위에 유지되도록 할 수 있는 방법이 있나요? 최근 Chrome 업데이트 이후 현재 작동하는 솔루션을 찾을 수 없습니다.

P粉833546953P粉833546953275일 전398

모든 응답(1)나는 대답할 것이다

  • P粉573943755

    P粉5739437552024-03-28 11:21:21

    Google Chrome 108 이상의 경우 <meta name="viewport" content="width=device-width, initial-scale=1.0, Interactive-widget=resizes-content">를 설정하세요.
    viewport 元标记中的 interactive-widget 속성을 참고하세요.

    해결책을 여기에서 찾았습니다.
    Android용 Chrome 최신 버전을 확인했습니다.

    으아아아 으아아아

    회신하다
    0
  • 취소회신하다