Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

Nimbus

CSS 수직 중앙정렬의 역사 본문

카테고리 없음

CSS 수직 중앙정렬의 역사

Nimbus 2025. 3. 17. 11:53

퍼블리싱을 처음 공부할 때, 수직 중앙 정렬에 대한 정석적인 방법을 찾기 어려워 답답함을 느꼈다.

하지만 **align-content**를 단독으로 사용하면서 이 부분에 대한 답답함이 해결되었고,

이제는 어느정도 속시원하게 처리할 수 있게 되었다.

그래서 이 과정에서 사용했던 방법들을 정리해 보려고 한다.

 

1. 테이블 셀을 이용한 방법.

<div style="display: table;">
  <div style="display: table-cell; vertical-align: middle;">text</div>
</div>

 

퍼블리싱을 시작한 초반에는 이 방법을 제외하고는 position: absolute를 사용해야 했기 때문에 자주 사용했다.

그러나 테이블 요소를 사용해야 하므로, 용도에 맞지 않음을 알고있기에 찝찝하게 사용했다.

 

2. line-height를 이용한 방법

<div style="height: 100px; line-height: 100px;">text</div>

 

텍스트가 한 줄일 때는 괜찮았지만, 여러 줄이 되면 무용지물이 되어 지양하던 방법이다.

반응형일 경우 더욱 맞지 않아서 더 이상 사용하지 않았다.

 

3. position을 이용한 방법

<div style="position: relative;">  
  <div style="position: absolute; top: 50%; transform: translateY(-50%);">text</div>  
</div>

 

출력만 시키면 간단하게 수직 중앙 정렬을 할 수 있었지만, 부모 요소에 높이값을 설정해야 하고,

반응형에서 취약하다는 단점이 있었다. 그래서 이 방법도 가급적 피했다.

 

 

그 후, flexbox와 grid를 사용하여 align-items: center를 설정하는 방법이 등장하면서 수직 중앙 정렬의 갈증이 해소되었다. 이 방식은 매우 직관적이고 쉽게 사용할 수 있지만, display: flex나 display: grid를 지정한 뒤 사용해야 한다는 불편함이 있었다.

 

하지만 최근 align-content 속성이 거의 모든 브라우저에서 지원(IE 제외)되면서, 이제는 단독으로 수직 중앙 정렬을 간단히 할 수 있게 되었다. 이제 아래와 같은 방식으로 간단하게 중앙 정렬을 맞출 수 있다.

 

현시점 정석 - align-content를 이용한 방법

<div style="align-content: center;">  
  text
</div>

 

수직 중앙 정렬의 방법은 시대와 기술에 따라 변해왔다.

이전에는 table cell이나 position, line-height 등을 사용해야 했고, flexboxgrid가 등장하면서 좀 더 편리해졌다.

그리고 최근에는 align-content 속성이 큰 역할을 하게 되면서, 더 간단하고 직관적으로 해결할 수 있게 되었다.

이제는 수직 중앙 정렬이 아주 간단한 작업이 되었으니, 이에 대한 고민을 덜어 좋고 앞으로 다른 부분에서도 css의 다양한 발전이 기다려지는 요즘이다.