front-end/html&css
[CSS] position: absolute인 아이템 가운데 정렬하기
MOOB
2021. 7. 20. 20:22
오늘은 CSS를 통해 아이템 가운데 정렬을 하는 방법에 대해 알아보려고 합니다.
만약 당신이 다음과 같은 방법을 통해 가운데 정렬을 하려다 애를 먹은 경험이 있다면, 이 포스팅이 도움이 될 수도 있습니다.
.item {
position: absolute
top: 50%;
left: 50%;
}
만약 위와 같은 방법으로 아이템을 가운데 정렬 하려고 했을 경우 아이템이 딱 가운데 정렬이 되지 않고 뭔가 애매하게 오른쪽 대각선 아래로 밀려나 있는 것을 볼 수 있을 겁니다.
왜냐하면 50%씩 밀려나는 기준이 아이템의 왼쪽 위이기 때문입니다. 그러므로 해당 아이템의 높이 및 너비의 절반만큼을 더 이동한 것 처럼 보이게 됩니다.
그러면 해당 아이템을 진짜 가운데 정렬 하기 위한 방법을 알아보겠습니다. 제가 가장 많이 사용하는 방법은 다음과 같습니다.
.item {
/* 해당 아이템의 높이와 너비를 딱 절반씩만큼 빼주면 됩니다! */
position: absolute;
top: 50%;
left: 50%;
margin-top: -50px;
margin-left: -100px;
}
간단하죠? 해당 높이와 너비의 절반만큼 빼주면 아이템은 딱 가운데 정렬이 되게 됩니다.
만약 아이템의 정확한 크기를 알지 못할때는 어떻게 하면 될까요?
바로 transform
을 사용하면 됩니다. 해당 프로퍼티는 엘리먼트의 사이즈를 바탕으로 사용하기 때문입니다.
.item {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
추가적으로 바로 위 부모 요소가 position:relative
를 가진 요소일 때는 다음과 같은 방법도 있습니다.
.item {
position: absolute;
width: 200px;
height: 100px;
top:0;
left:0;
bottom:0;
right: 0;
}