CSS / aspect-ratio / 요소의 가로 세로 비율 정하는 속성
개요
aspect-ratio
는 선택한 요소의 가로 세로 비율을 정하는 속성이다.
접속하는 기기의 해상도가 변해도, 일정한 가로 세로 비율을 유지하고 싶을 때 유용하게 사용할 수 있다.
문법
aspect-ratio: auto | number / number | initial | inherit
auto
: 요소가 고유의 가로 세로 비율을 가진 경우 그 값으로 설정한다.number / number
: 가로 대 세로. 세로가 생략된 경우 1로 처리한다.initial
: 기본값으로 설정한다.inherit
: 부모 요소의 속성값을 상속 받는다.
예제 - 고유 가로 세로 비율이 없는 요소
div
요소의 가로 크기를 600px로 정하고 가로 세로 비율을 4:3으로 한다. 즉, 세로 크기는 300px가 된다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style type="text/css"> div { background-color: #e3f2fd; width: 600px; aspect-ratio: 4 / 3; } </style> </head> <body> <div></div> </body> </html>
div
요소의 세로 크기를 300px로 정하고 가로 세로 비율을 4:3으로 한다. 즉, 가로 크기는 400px가 된다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style type="text/css"> div { background-color: #e3f2fd; height: 300px; aspect-ratio: 4 / 3; } </style> </head> <body> <div></div> </body> </html>
div
요소의 가로 크기를 600px로 정하고 가로 세로 비율을 4로 하면, 세로는 1로 처리한다. 즉, 4:1이므로 세로 크기는 150px가 된다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style type="text/css"> div { background-color: #e3f2fd; width: 600px; aspect-ratio: 4; } </style> </head> <body> <div></div> </body> </html>
div
요소의 가로 크기와 세로 크기를 정하지 않으면, 가로 크기 100%로 작동한다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style type="text/css"> div { background-color: #e3f2fd; aspect-ratio: 16 / 9; } </style> </head> <body> <div></div> </body> </html>
예제 - 고유 가로 세로 비율이 있는 요소
- 이미지와 같이 고유 가로 세로 비율이 있는 요소, 가로 크기 또는 세로 크기를 지정하지 않으면
aspect-ratio
가 적용되지 않는다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style type="text/css"> img { aspect-ratio: 4 / 1; } </style> </head> <body> <img src="images/square-400x400.png" alt=""> </body> </html>
- 가로 크기 또는 세로 크기를 설정해야
aspect-ratio
가 적용된다.
<!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style type="text/css"> img { width: 100%; aspect-ratio: 4 / 1; } </style> </head> <body> <img src="images/square-400x400.png" alt=""> </body> </html>