웹 개발을 하다 보면 배너나 카드 디자인처럼 이미지 위에 텍스트를 겹쳐 배치해야 하는 경우가 자주 있습니다. HTML과 CSS만으로도 이러한 효과를 간단하게 구현할 수 있으며, 그 핵심은 바로 position 속성입니다.
핵심 원리: position 속성 활용하기
이미지를 감싸는 부모 요소(컨테이너)에는 position: relative;를, 그 위에 얹을 텍스트 요소에는 position: absolute;를 지정합니다. 이렇게 하면 텍스트가 컨테이너를 기준으로 배치되며, top, bottom, left, right 값을 조절해 원하는 위치에 자유롭게 놓을 수 있습니다.
전체 예제 코드
다음은 하나의 이미지 위에 좌상단, 우상단, 좌하단, 우하단, 중앙 다섯 곳에 텍스트를 배치하는 완성된 코드입니다.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
h1{
text-align: center;
}
.imageContainer {
margin-left:36%;
display: inline-block;
position: relative;
text-align: center;
color: rgb(64, 11, 124);
}
.caption{
font-size: 25px;
font-weight: bolder;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.BL {
position: absolute;
bottom: 8px;
left: 16px;
}
.TL{
position: absolute;
top: 8px;
left: 16px;
}
.TR {
position: absolute;
top: 8px;
right: 16px;
}
.BR {
position: absolute;
bottom: 8px;
right: 16px;
}
.center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<h1>이미지 위에 텍스트 배치하기</h1>
<div class="imageContainer">
<img src="https://i.picsum.photos/id/59/500/500.jpg">
<div class="caption BL">왼쪽 아래 텍스트</div>
<div class="caption TL">왼쪽 위 텍스트</div>
<div class="caption TR">오른쪽 위 텍스트</div>
<div class="caption BR">오른쪽 아래 텍스트</div>
<div class="caption center">가운데 텍스트</div>
</div>
</body>
</html>코드 주요 포인트
- .imageContainer – 이미지와 텍스트를 감싸는 컨테이너입니다.
position: relative;가 적용되어 텍스트 배치의 기준점 역할을 합니다. - .TL / .TR / .BL / .BR – 각각 좌상단, 우상단, 좌하단, 우하단에 텍스트를 고정하는 클래스입니다.
- .center –
top: 50%,left: 50%와transform: translate(-50%, -50%)를 조합해 이미지의 정중앙에 텍스트를 배치합니다. 이 방식은 텍스트 길이와 무관하게 항상 정확한 중앙 정렬이 가능합니다.
실행 결과
위 코드를 브라우저에서 실행하면 아래 화면과 같이 하나의 이미지 위에 다섯 위치의 텍스트가 동시에 표시됩니다.

마무리 팁
텍스트 가독성을 높이고 싶다면 이미지 위에 반투명 오버레이를 추가하거나 텍스트에 text-shadow를 적용해 보세요. 또한 모바일 환경까지 고려해 폰트 크기를 vw 같은 반응형 단위로 지정하면 더욱 완성도 높은 결과를 얻을 수 있습니다.