Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발자입니다

div내 div 수직 가운데 정렬하기 본문

HTML & CSS/HTML, CSS 정리

div내 div 수직 가운데 정렬하기

끈기JK 2022. 9. 29. 10:39

flex로 하려고 몇시간동안 해봤는데 안돼서 아래 방법으로 했다.

 

position + transform 사용하기

.in3 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

 

이 방법을 추천드리는 이유는 위에서 언급했던 단점들을 모두 극복한 방법이기 때문입니다. 코딩은 살짝 더 복잡해도 부모 요소의 div가 사이즈가 변경되어도, 위치가 변경되어도, 또는 자식 요소의 div 크기가 변경되어도 늘 정중앙에 배치됩니다. 그냥 공식처럼 외워두시면 될 것 같습니다.

 

포지션의 기준점은 div의 사각형을 화면상에서 바라봤을 경우 왼쪽 상단 꼭지점이 됩니다. 여기를 좌측으로 50% 옮기고 위에서 50% 아래로 배치하면 가운데의 div가 약간 우측 아래로 배치되어 있을 겁니다. 이것을 다시 정중앙으로 오게 만들기 위해서 transform을 사용한 것 입니다. -50%라는 이야기는 자식요소 div의 가로, 세로 크기값의 -50% 니까, 계산된 값만큼 반대로 이동하게 됩니다. 결국 정중앙에 배치가 됩니다. div 안쪽의 div를 정중앙으로 오게 하는 방법은 이 방법이 짱입니다. 그림으로 다시 설명드리면 이런 원리 입니다.

 

 

그림으로 보시면 어떤 원리인지 이제 좀 대충 이해가 될 것이라고 생각합니다. 저 빨간점이 position의 기준점이 되며, 이 기준점을 translate로 인해서 옮겨지게 되는 것 입니다. 결국 가운데 div는 최종적으로 정중앙에 위치하게 됩니다.

출처: https://rgy0409.tistory.com/3025 [친절한효자손 취미생활:티스토리]