너비가 바뀌어도 가로세로 비율(예: 16:9)을 지키는 상자. 지금은 aspect-ratio 속성 한 줄이면 되고, 그 전에는 퍼센트 padding을 이용한 트릭을 썼다. 임베드 동영상(iframe)을 반응형으로 만들 때 주로 쓴다.
/* 현대 방식 */
.video { width: 100%; aspect-ratio: 16 / 9; }padding-bottom 트릭
padding을 퍼센트로 주면 부모의 너비를 기준으로 계산된다. 높이를 0으로 두면 padding이 높이를 대신하므로, 너비에 비례하는 높이가 생긴다.
.wrap {
position: relative;
height: 0;
padding-bottom: calc(100% / (16 / 9)); /* = 56.25% */
}
.wrap iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}- 16:9가 아니면
높이 / 너비 * 100%로 계산한다. CSS 변수(CSS Custom Properties,--ratio)로 비율을 받으면 컴포넌트 하나로 여러 비율을 처리할 수 있다 - 안쪽 요소는 inset: 0과 absolute로 상자를 채운다
aspect-ratio를 지원하지 않는 아주 오래된 브라우저를 위해 두 방식을 함께 두기도 했지만 2026 기준으로는aspect-ratio만으로 충분하다
이미지와 동영상에 비율이나 크기를 미리 잡아 두면 로드될 때 레이아웃이 밀리지 않아 CLS(Cumulative Layout Shift)가 좋아진다. 반응형 웹 디자인의 한 도구다.