크고 작은 동적 표시 영역 단위

동적 툴바가 포함된 모바일 표시 영역을 고려한 새로운 CSS 단위

표시 영역 및 표시 단위

표시 영역과 같은 높이로 크기를 조절하려면 vwvh 단위를 사용하면 됩니다.

  • vw = 표시 영역 크기 너비의 1%
  • vh = 표시 영역 크기 높이의 1%

요소의 너비는 100vw, 높이를 100vh로 지정하면 표시 영역 전체를 포함합니다.

연한 파란색 요소가 100vw x 100vh로 설정되어 전체 표시 영역을 덮습니다. 표시 영역 자체는 파란색 파선 테두리로 표시됩니다.
100vw x 100vh로 설정된 연한 파란색 요소로, 전체 표시 영역을 포함합니다.
표시 영역 자체는 파란색 파선 테두리로 표시됩니다.

vwvh 단위가 브라우저에 추가되었습니다.

  • vi = 표시 영역 인라인 축 크기의 1%
  • vb = 표시 영역 블록 축 크기의 1%
  • vmin = vw 또는 vh 중 더 작은 값입니다.
  • vmax = vw 또는 vh 중 더 큰 값입니다.

이러한 단위는 브라우저 지원이 뛰어납니다.

브라우저 지원

  • 20
  • 12
  • 19
  • 6

새로운 표시 영역 단위의 필요성

기존 광고 단위가 데스크톱에서는 잘 작동하지만 모바일 기기에서는 다릅니다. 여기서 표시 영역 크기는 동적 툴바의 존재 여부에 따라 달라집니다. 여기에는 주소 표시줄이나 탭바와 같은 사용자 인터페이스가 있습니다.

표시 영역 크기는 변경될 수 있지만 vwvh 크기는 변경되지 않습니다. 따라서 높이가 100vh인 요소가 표시 영역 밖으로 흘러나옵니다.

모바일에서는 100vh가 로드 시 너무 깁니다.
로드 시 모바일의 100vh가 너무 높음

이러한 동적 툴바는 아래로 스크롤하면 접힙니다. 이 상태에서 높이가 100vh인 요소는 전체 표시 영역을 포함합니다.

사용자 에이전트 사용자 인터페이스가 철회되면 휴대기기의 100vh가 '올바릅니다'.
사용자 에이전트 사용자 인터페이스를 철회하면 모바일의 100vh가 '올바름'입니다.

이 문제를 해결하기 위해 CSS Working Group에서 뷰포트의 다양한 상태를 지정했습니다.

  • 큰 표시 영역: 동적으로 확장되고 축소되어 축소되는 UA 인터페이스를 가정한 표시 영역 크기입니다.
  • 작은 표시 영역: 확장하기 위해 동적으로 확장되고 축소되는 UA 인터페이스를 가정한 표시 영역 크기입니다.
크고 작은 뷰포트의 시각화
크고 작은 표시 영역의 시각화

새 표시 영역에는 지정 단위도 있습니다.

  • 큰 표시 영역을 나타내는 단위에는 lv 접두사가 있습니다. 단위는 lvw, lvh, lvi, lvb, lvmin, lvmax입니다.
  • 작은 표시 영역을 나타내는 단위에는 sv 접두사가 있습니다. 단위는 svw, svh, svi, svb, svmin, svmax입니다.

표시 영역 자체의 크기를 조절하지 않는 한 이러한 표시 영역 비율 단위의 크기는 고정되어 안정적입니다.

나란히 놓인 두 개의 모바일 브라우저 시각화 하나는 100svh로 된 엘리먼트이고 다른 하나는 100lvh로 되어 있습니다.
두 개의 모바일 브라우저 시각화가 나란히 배치되어 있습니다.
한 개는 요소 크기가 100svh이고 다른 하나는 100lvh입니다.

크고 작은 표시 영역 외에도 UA UI를 동적으로 고려하는 동적 표시 영역도 있습니다.

  • 동적 툴바가 확장되면 동적 표시 영역은 작은 표시 영역의 크기와 같습니다.
  • 동적 툴바가 축소되면 동적 표시 영역은 큰 표시 영역의 크기와 같습니다.

함께 제공되는 단위에는 dv 접두사(dvw, dvh, dvi, dvb, dvmin, dvmax)가 있습니다. 그 크기는 lv*sv* 대응 항목 간에 고정됩니다.

100dvh는 큰 표시 영역이나 작은 표시 영역 크기로 조절됩니다.
100dvh는 큰 표시 영역이나 작은 표시 영역에 맞게 조정됩니다.

이 단위는 Chrome 108에서 제공되며 이미 지원 중인 Safari 및 Firefox와 함께 제공됩니다.

브라우저 지원

  • 108
  • 108
  • 101
  • 15.4

주의사항

표시 영역 단위에 대해 알아야 할 몇 가지 주의사항이 있습니다.

  • 스크롤바 크기를 고려하지 않은 표시 영역 단위는 없습니다. 따라서 기존 스크롤바가 사용 설정된 시스템에서는 100vw 크기의 요소가 약간 너무 넓어집니다. 이는 사양에 따라 적용됩니다.

  • 동적 표시 영역의 값은 60fps로 업데이트되지 않습니다. 모든 브라우저에서 UA UI가 확장되거나 철회될 때 업데이트가 제한됩니다. 어떤 브라우저는 사용된 동작 (느린 스크롤 대 스와이프)에 따라 업데이트를 완전히 디바운스하기도 합니다.

  • 터치 키보드 (가상 키보드라고도 함)는 UA UI의 일부로 간주되지 않습니다. 따라서 표시 영역 단위의 크기에 영향을 미치지 않습니다. Chrome에서는 가상 키보드가 표시 영역 단위에 영향을 미치는 동작을 선택할 수 있습니다.

추가 리소스

표시 영역과 이러한 단위에 대한 자세한 내용은 이 HTTP 203 에피소드를 확인하세요. 여기에서 BramusJake에게 다양한 표시 영역에 대해 설명하고 이러한 단위의 크기가 정확히 어떻게 결정되는지 설명합니다.

추가 읽기 자료: