HTML DOM Style의 objectFit 속성은 HTML 문서 내 이미지(img) 또는 비디오(video) 요소가 자신을 감싸는 컨테이너 요소에 맞춰 어떻게 크기가 조절될지를 확인하고 설정하는 데 사용됩니다.
문법(Syntax)
objectFit 속성의 기본 문법은 다음과 같습니다.
1. objectFit 값 가져오기
object.objectFit
2. objectFit 값 설정하기
object.objectFit = "value"
여기서 value에 사용할 수 있는 값은 다음과 같습니다.
| 값 | 설명 |
|---|---|
| initial | 이 속성값을 기본값으로 설정합니다. |
| inherit | 부모 요소로부터 이 속성값을 상속받습니다. |
| none | 콘텐츠의 크기를 조절하지 않습니다. |
| fill | 콘텐츠를 요소의 콘텐츠 박스를 가득 채우도록 크기를 조절하며, 필요한 경우 객체가 늘어나거나 눌려서 박스에 맞춰집니다. |
| contain | 원본의 가로세로 비율(종횡비)을 유지하면서 요소의 콘텐츠 박스 안에 들어가도록 콘텐츠 크기를 조절합니다. |
| cover | 가로세로 비율을 유지하면서 요소의 콘텐츠 박스 전체를 채우도록 콘텐츠 크기를 조절하며, 필요에 따라 일부가 잘릴 수 있습니다. |
| scale-down | none과 contain 중 더 작은 크기로 표시되는 방식을 선택하여 콘텐츠 크기를 조절합니다. |
이제 HTML DOM Style objectFit 속성의 실제 사용 예제를 살펴보겠습니다.
예제(Example)
<!DOCTYPE html>
<html>
<style>
body {
color: #000;
height: 100vh;
background-color: #8BC6EC;
background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
text-align: center;
}
.btn {
background: #db133a;
border: none;
height: 2rem;
border-radius: 2px;
width: 40%;
display: block;
color: #fff;
outline: none;
cursor: pointer;
margin: 1rem auto;
}
.img-class {
width: 200px;
height: 250px;
}
</style>
<body>
<h1 style="text-align:center">DOM Style objectFit Property Demo</h1>
<img alt="Learn Time Series" src="https://www.tutorialspoint.com/time_series/images/time-series-mini-logo.jpg" class="img-class" width='300' height='200'>
<button class="btn" onclick="set()">Set objectFit</button>
<script>
function set() {
document.querySelector('.img-class').style.objectFit = "contain";
}
</script>
</body>
</html>실행 결과(Output)

위 예제에서는 200×250 픽셀 크기의 컨테이너 안에 300×200 픽셀의 이미지가 배치되어 있어, 기본 상태에서는 이미지 비율이 깨져 보일 수 있습니다.
여기서 “Set objectFit” 버튼을 클릭하면 JavaScript의 set() 함수가 실행되어 이미지 요소의 objectFit 속성이 contain으로 설정됩니다.

결과적으로 이미지는 원본의 가로세로 비율을 그대로 유지한 채 컨테이너 안에 맞게 축소되어 표시됩니다. 이처럼 objectFit 속성을 활용하면 반응형 웹 디자인에서 이미지나 비디오가 왜곡되지 않고 의도한 대로 표시되도록 손쉽게 제어할 수 있습니다.