AD JB Toolbox 01

CSS / Reference / aspect-ratio

aspect-ratio는 요소의 가로와 세로 비율을 위한 선호 비율을 지정합니다. 한 축의 크기가 auto일 때 다른 축을 바탕으로 크기를 계산하는 데 쓰이며, 가로·세로를 모두 고정하면 그 값들이 비율보다 우선할 수 있습니다.

문법과 주요 값

.video { width: 100%; aspect-ratio: 16 / 9; }
.square { width: 240px; aspect-ratio: 1; }
값 또는 구분 동작과 선택 기준
auto 별도의 지정 비율 없음; 대체 요소는 고유 비율 사용 가능
16 / 9 가로 16 : 세로 9의 선호 비율
1 정사각형 선호 비율
auto 16 / 9 대체 요소에서 고유 비율을 얻기 전 사용할 지정 비율

값의 적용 범위와 문법은 MDN의 aspect-ratio 문서에서 확인할 수 있습니다.

실행 예제와 결과 비교

아래 전체 코드를 UTF-8 형식의 aspect-ratio-example.html 파일로 저장한 뒤 브라우저로 여세요. 예제용 CSS는 이 파일 안에만 넣고 사이트 전체 스타일시트에 그대로 붙여 넣지 않습니다.

<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>aspect-ratio 비교 예제</title>
<style>
body { margin: 0; color: #20242b; background: #fff; font: 16px/1.7 "Malgun Gothic", sans-serif; }
#demo { padding: 24px; max-width: 820px; margin: auto; }
h1 { font-size: 22px; margin: 0 0 20px; }
.samples { display: flex; flex-wrap: wrap; gap: 24px; }
.label { margin: 0 0 8px; font-weight: 700; }
.target, .reference { width: 240px; height: auto; background: #bfe3ff; }
.target { aspect-ratio: 16 / 9; }
.reference { aspect-ratio: 1; }
</style>
</head>
<body>
<main id="demo">
<h1>aspect-ratio 적용 비교</h1>
<section class="samples"><div class="a"><p class="label">16 / 9</p><div class="target"></div></div><div class="b"><p class="label">1</p><div class="reference"></div></div></section>
</main>
</body>
</html>

너비 240px인 첫 박스의 높이는 135px, 두 번째 정사각형은 240px입니다. 너비가 바뀌면 auto 높이도 선호 비율에 따라 바뀝니다.

너비 240px인 첫 박스의 높이는 135px, 두 번째 정사각형은 240px입니다.

선호 비율과 크기 제약

aspect-ratio는 모든 상황에서 크기를 강제하는 잠금 장치가 아닙니다. width와 height, min/max 크기, 콘텐츠 최소 크기와 flex·grid의 배치 제약이 결과에 영향을 줍니다. 양쪽 크기를 고정하면 비율 선언만으로 한쪽이 자동 수정되지 않습니다.

이미지 박스와 이미지 내용

img의 박스에 비율을 지정해도 사진을 어떻게 맞출지는 object-fit이 정합니다. cover는 자를 수 있고 contain은 빈 공간을 남길 수 있습니다. 이미지의 원래 width·height 정보를 HTML에 제공하는 것과 CSS 선호 비율은 구분되며, 콘텐츠 로딩 전 공간을 마련하려면 두 정보가 모순되지 않도록 합니다.

적용되지 않거나 예상과 다를 때

  • 비율이 안 맞으면 height가 auto인지와 min-height 등의 제한을 확인합니다.
  • 사진이 찌그러지면 박스 비율뿐 아니라 object-fit과 이미지 크기 설정을 확인합니다.

관련 설정을 함께 조정할 때는 비율 계산에 관여하는 box-sizing을 참고하세요.

같은 카테고리의 다른 글
CSS / Reference / text-shadow

CSS / Reference / text-shadow

text-shadow의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 예문의 글자 오른쪽 아래에 흐린 그림자가 보이고 두 번째 예문에는 없습니다.

CSS / Reference / font-style

CSS / Reference / font-style

font-style의 문법과 주요 값, 실제 적용 조건을 설명합니다. 동일한 글꼴에서 italic과 oblique의 형태를 비교합니다.

CSS / Reference / aspect-ratio

CSS / Reference / aspect-ratio

aspect-ratio의 문법과 주요 값, 실제 적용 조건을 설명합니다. 너비 240px인 첫 박스의 높이는 135px, 두 번째 정사각형은 240px입니다.

CSS / Reference / text-indent

CSS / Reference / text-indent

text-indent의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 번째 문단은 첫 줄만 안으로 들어갑니다.

CSS / Reference / opacity

CSS / Reference / opacity

opacity의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 박스에서는 흰 글자도 함께 흐려지고 두 번째 박스에서는 배경만 뒤의 색과 섞입니다.

CSS / Reference / box-shadow

CSS / Reference / box-shadow

box-shadow의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 박스는 오른쪽 아래로 흐린 그림자가 생기고 두 번째 박스는 안쪽에 색 띠가 생깁니다.

CSS / Reference / white-space

CSS / Reference / white-space

white-space의 문법과 주요 값, 실제 적용 조건을 설명합니다. pre-wrap에서는 연속 공백과 원문의 줄바꿈이 남고, normal에서는 같은 텍스트가 일반적인 문장처럼 합쳐집니다.

CSS / Reference / font-weight

CSS / Reference / font-weight

font-weight의 문법과 주요 값, 실제 적용 조건을 설명합니다. 일반 굵기와 굵은 글자를 비교합니다.

CSS / Reference / content

CSS / Reference / content

content의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 예문 앞뒤에 문자열이 생성되고 data-label 값이 뒤에 표시됩니다.

CSS / Reference / border-spacing

CSS / Reference / border-spacing

border-spacing의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 표에서는 셀 사이에 가로 12px, 세로 6px의 간격이 생깁니다.