front-end development

main을 화면 중앙에 배치하려면? margin: auto vs text-align: center

지식루프 2025. 9. 13. 18:44
728x90
반응형

웹에서 가운데 정렬을 할 때, 초보자가 가장 많이 헷갈리는 부분이 바로
margin: auto와 text-align: center의 차이입니다.


1. margin: auto의 원리 – 블록 요소를 가운데 정렬

main {
  width: 700px;
  margin: 32px auto;
}

 

  • main 같은 블록 요소는 기본적으로 왼쪽부터 쌓임.
  • 그런데 width를 주면 요소가 화면 전체를 차지하지 않고 남는 공간이 생김.
  • margin-left: auto; margin-right: auto;는 남는 공간을 좌우로 균등하게 분배해서, 블록 요소 자체가 화면 가운데로 이동함.

👉 즉, 블록 요소 자체를 정렬하는 방법이에요.


2. text-align: center의 원리 – 내부 텍스트/인라인 요소 정렬

main {
  text-align: center;
}

 

  • text-align은 부모 박스 안에서 인라인 요소(텍스트, span, img 등)의 정렬 방식을 결정.
  • 따라서 블록 요소(main, div, section 등)를 가운데로 옮기지 않음.
  • 대신, 그 안의 글자나 인라인 요소들만 가운데로 정렬됨.

👉 즉, 자식 인라인 요소를 정렬하는 방법이에요.

 


3. 두 가지 비교 정리

 

구분  margin: auto  text-align: center
적용 대상 블록 요소 인라인 요소 (텍스트, span, img)
필요 조건 width 값 지정 필요 display: inline, inline-block, 또는 텍스트
효과 요소 박스 자체를 가운데 정렬 박스 안의 텍스트/인라인 요소만 가운데 정렬
예시 main, div, section span, a, 텍스트, img

 

4. 왜 text-align: center로는 안되나?

main 같은 블록 요소는 부모 컨테이너(예: <body>) 안에서 이미 독립적인 박스로 자리 잡아요.
이 블록 요소 자체를 옮기려면 margin 같은 레이아웃 속성이 필요하지,
text-align은 내부 자식에만 적용되기 때문에 먹히지 않는 거예요.

 

5. 실제 코드 비교

<main>
  가운데 정렬된 텍스트
</main>

 

/* 방법 1: main 자체를 가운데 */
main {
  width: 700px;
  margin: 0 auto;  /* 블록 요소 자체가 중앙 */
}

/* 방법 2: main 안의 텍스트만 가운데 */
main {
  text-align: center; /* 내부 글자만 중앙 */
}

 

✅ 한 줄 요약

  • 박스 자체를 가운데로: margin: auto
  • 박스 안의 글자를 가운데로: text-align: center

블로그 글이라면 여기서 마지막에 “헷갈리지 않게 기억하는 법” 같은 포인트 넣으면 좋아요.
예:
👉 "margin은 박스 자체, text-align은 박스 안의 글자"

 

 

 

 

 

728x90
반응형