CSS로 Div 또는 Div 안의 텍스트를 가운데 정렬하는 방법


전문가들은 반응형 레이아웃에 대해 견고한 결과를 원하며, 포함 블록 내부에서 콘텐츠를 배치할 때 그렇습니다. 당신이 원하는 것은 블록과 인라인 스팬 요소를 모두 처리하는 기본적이고 예측 가능한 접근 방식입니다. 외부 요소를 두 축을 제어하는 유연한 프레임으로 전환한 후, 자식 요소를 아래 중간선에 배치하세요.
추측 없이 수평 정렬을 달성하려면, 컨테이너를 플렉스박스 레이아웃으로 전환하세요. 주 축이 아이템을 중간으로 이동시키도록 하고, 교차 축을 사용하여 수직 균형을 유지하세요. 이 접근 방식은 제목, 단락, 입력 필드에 대해 챕터와 비디오 및 소프트웨어 컨텍스트에 걸쳐 작동하며, 레이아웃이 확장됨에 따라 안정적인 시각을 추구하는 팀에 의해 자주 사용됩니다.
컨트롤과 이웃 요소 사이에 여백이 필요할 때, 이전 아이템에 margin-right를 적용하거나 자동 간격에 의존하세요. 견고한 레이아웃에서 작은 margin-right 값은 겹침 위험이 없으며, 베이스라인 아래 깨끗한 리듬을 유지합니다.
폼 필드에 대한 실생활 챕터에서 이 방법은 여전히 견고합니다. 플렉스 컨테이너를 통해 수평 및 수직 정렬을 결합하여 당신의 콘텐츠 유형을 배치하세요. 결과는 데스크톱 소프트웨어, 모바일 브라우저, 그리고 기술을 실용적인 단계로 보여주는 임베디드 비디오 튜토리얼에서 작동하는 견고한 베이스라인입니다.
폴드 아래에서 테스트하고 필요에 따라 조정하세요: 매우 짧은 줄에 끝 정렬을 사용하거나, 긴 문자열에 래핑을 허용하세요. 많은 경우, 이 접근 방식을 추가 래퍼를 사용하여 결합하여 레이아웃을 격리하고, 블록을 제어하며, 페이지에 새 필드나 이미지를 추가할 때 레이아웃 변화를 피할 수 있습니다.
플렉스박스를 사용한 중앙 정렬
부모를 플렉스 컨테이너로 만들고 자식을 두 축 모두에서 중앙에 배치하여 섹션 내에서 추가 래퍼 없이 중앙 정렬 결과를 얻으세요. 교차 축은 일관되게 정렬되어 예측 가능한 동작을 보장합니다.
수평 정렬만 하려면 주 축을 따라 정당화에 의존하고 교차 축은 그대로 두세요; 아이템은 수평으로 행의 중간에 위치합니다.
비즈니스 대시보드가 깔끔하게 유지되도록 돕는 다섯 가지 실용적인 패턴: 단일 배너, 카드 그리드, 비디오 갤러리, 목록, 폼 블록. 각 패턴은 장치에 걸쳐 안정적이며, 수익 및 서비스 목표를 지원합니다; 계획은 여러 호스트에서 동일한 접근 방식을 재사용할 수 있습니다.
아이템이 스팬이나 다른 인라인 요소인 경우, 컨테이너를 적응시켜 스팬이 흐름 내에 위치하도록 플렉스 아이템으로 취급하세요; 이는 텍스트가 접근 가능하게 유지되는 동안 정렬을 예측 가능하게 유지합니다.
왼쪽에서 오른쪽으로 레이아웃의 경우, 컨테이너의 자연 값과 여백에 의존하세요; 고려할 값에는 필요 시 margin-left의 효과가 포함되며, 다섯 개의 브레이크포인트에 걸쳐 일관된 수평 분포를 보장하여 뷰포트 크기와 관계없이 요소가 중앙에 유지되도록 하세요.
margin: auto를 사용한 블록의 수평 중앙 정렬
대상 요소에 고정 너비를 부여하고 auto를 사용하여 양쪽에 동일한 여백을 할당하여 포함 영역 내에서 수평 정렬을 달성하세요.
성공을 달성하는 데 필요한 것:
- 흐름에서 블록 수준 요소 또는 블록으로 취급되는 요소
- 정의된 너비 (px 또는 구체적인 값이 있는 max-width)
- margin-left: auto 및 margin-right: auto
- 사용 가능한 너비를 가진 호스팅 컨테이너
- 선택적: 반응형 동작을 위한 max-width
깨끗하게 구현하는 방법:
- 요소를 display: block으로 설정하거나 (레이아웃에서 블록처럼 동작하도록 보장).
- 자동 여백이 여유 공간을 가질 수 있도록 부모의 너비보다 작은 너비를 지정하세요.
- margin-left: auto 및 margin-right: auto를 적용하세요; 이는 양쪽에 동일한 공간을 만들고 블록을 중간에 배치합니다.
- 컨테이너가 축소될 수 있는 경우, 오버플로 없이 모양을 유지하기 위해 max-width와 백분율 너비를 고려하세요.
- 오버레이를 의도하지 않는 한 절대 위치를 피하세요; 마진 기반 중앙 정렬은 정상 흐름 내에서 가장 잘 작동합니다.
고려할 만한 노트:
- 그리드나 테이블-셀 컨텍스트에서 수평 배치는 여전히 auto 마진에 의존할 수 있지만, 구조에 따라 동작이 다를 수 있습니다.
- 수직 스태킹의 경우, 아이템의 수직 메트릭스가 다른 형제 요소와 충돌하지 않도록 보장하세요; 수평 효과는 일관되게 유지됩니다.
- 여러 저자가 대체 방법을 실험하며, Nathan의 테스트는 현대 소프트웨어 환경에 걸쳐 간단한 규칙이 예측 가능한 결과를 제공함을 보여줍니다.
- 익숙한 모양 내에서 이 접근 방식은 추가 래퍼 없이 깨끗한 정렬을 드러냅니다.
- 공식 설정에서 이 기술을 사용하면 마크업을 간결하게 유지하고 호스트와 팀 모두에게 서비스 친화적으로 만듭니다.
- 아래 예시는 실무에서 재사용할 수 있는 일반적인 시나리오를 보여줍니다.
예시 (재사용할 수 있는 코드):
- 고정 너비 중앙 정렬 블록:
width: 320px; margin-left: auto; margin-right: auto; display: block; - 캡이 있는 유동 너비:
width: 60%; max-width: 600px; margin-left: auto; margin-right: auto; display: block; - 그리드 컨텍스트 (흐름 유지):
parent { display: grid; grid-template-columns: 1fr; } .child { width: 480px; margin-left: auto; margin-right: auto; } - 레거시 레이아웃에서 테이블-셀 같은 정렬:
wrapper { display: table; width: 100%; } .child { display: table-cell; width: 320px; text-align: left; margin: 0 auto; }
실용적인 팁:
- 다양한 호스트와 화면 크기에서 모양이 어떻게 변하는지 확인하기 위해 여러 너비를 시도하세요.
- 수직 리듬을 위해 수직 여백과 결합하여 흐름을 깔끔하게 유지하세요 (주변 아이템의 전체 효과를 생각하세요).
- 도구 관점에서 이 접근 방식은 대부분의 워크플로와 소프트웨어 스택과 호환되며, 공식 레이아웃의 신뢰할 수 있는 베이스라인으로 남습니다.
- 마지막으로, 여러 팀 구성원을 위해 유지 보수를 간단하게 유지하기 위해 클래스에 명확한 이름을 사용하세요.
상세 노트: 특정 섹션에 절대 위치가 필요한 경우, 페이지의 나머지 부분에 대해 정상 흐름에서 auto 마진에 여전히 의존하여 균형 잡힌 모양을 드러낼 수 있습니다. 실무에서 이 간단한 설정은 컨테이너 내에서 추가 복잡성 없이 직관적이고 견고한 정렬을 달성하는 데 종종 충분합니다.
text-align: center를 사용한 인라인 텍스트 중앙 정렬
주변 블록에 중앙 정렬을 적용하여 인라인 콘텐츠를 줄의 중간에 배치하세요.
구문: 관련 속성은 호스팅 컨테이너 내부의 인라인 아이템을 대상으로 하며, 블록의 수직 리듬을 변경하지 않습니다.
예시: 작은 인라인 요소로 감싸진 여러 단어가 포함된 줄은 부모 컨텍스트가 규칙을 적용할 때 중앙으로 렌더링됩니다.
오른쪽에서 왼쪽으로: 콘텐츠 순서가 변경되는 동안 정렬을 유지하면서 오른쪽에서 왼쪽으로 흐르는 언어에 동일한 수평 중앙 정렬이 작동합니다.
이 서비스 친화적인 접근 방식은 뉴스 포털과 교육 블로그 사이트에 적합하며, 장치와 레이아웃에 걸쳐 일관성을 보장합니다.
노트: 일부 레이아웃은 플로트를 피하는 이점을 얻습니다; 대신 표준 정렬에 의존하여 인라인 아이템 주변의 공간이 예측 가능하게 유지되도록 하세요.
전술 및 계획: 일관된 수직 간격과 수직 균형 줄을 위해 line-height, 폰트 메트릭스, 이웃 블록 간 간격과 짝지으세요.
팁: 보조 요소가 시각적으로 정렬되어야 하는 컨텍스트에서 margin-left를 실험할 수 있습니다; 인라인-블록이나 위치 지정된 블록으로 변환하면 결과를 제어하는 데 도움이 됩니다; 목표는 모든 것을 정렬하고 균등하게 간격을 두는 것입니다.
위치 지정된 요소와 translate-50: 틈새 경우에, transform translate-50은 자식의 너비 절반만큼 밀어서 정확한 중간에 도달할 수 있습니다; 이 접근 방식은 첫 번째 선택이 아닌 대체 방법입니다.
nathan은 부모가 사용하는 뉴스 지향 레이아웃에서 테스트를 실행했습니다; 결과는 블록과 마크에 걸쳐 안정적인 수평 정렬을 보여주었으며; 다른 유형과 공간 설정은 정렬된 상태로 유지됩니다.
| 시나리오 | 결과 | 노트 |
|---|---|---|
| 간단한 블록 내 인라인 그룹 | 단일 줄에서 중앙 정렬이 보입니다 | 정렬의 좋은 베이스라인 |
| 넓은 컨테이너 내부의 인라인 콘텐츠 | 콘텐츠가 중간선에 위치하며 여백이 동일합니다 | 여러 공간에 걸쳐 작동 |
부모에 플렉스박스를 사용한 단일 줄의 수직 중앙 정렬
권장: 외부 블록에 플렉스 컨테이너를 사용하고 align-items: center를 설정하여 단일 줄을 수직 중간에 배치하세요. 래퍼에 고정 높이 (예: 60px)를 부여하여 보이는 공간을 만드세요. 예시: style="display:flex; align-items:center; height:60px; border:1px solid #ddd; background:#f7f7f7;"은 정렬을 명확하게 드러내고 내부 줄을 단일 인라인 아이템으로 유지하며, 여러 줄로 성장하는 것을 피합니다.
실무에서 이 접근 방식은 블록 수준 영역에 잘 작동하며, 미묘한 테두리와 배경으로 결과를 시각화하는 직관적인 방법을 제공합니다. 이 기술은 여러 레이아웃에 적응 가능하며, UI 구성 요소의 물결에서 신뢰할 수 있는 빌딩 블록으로 작용하여 추가 복잡성 없이 목표를 달성하는 데 도움이 됩니다.
미세 조정: 폰트나 렌더링이 추가 조정이 필요한 경우, 줄의 컨테이너에 transform translate-50을 적용하여 베이스라인을 조정할 수 있습니다; 기본 플렉스 정렬이 보통 충분합니다. 계산된 높이와 line-height는 장치에 걸쳐 줄을 정렬되게 상호 작용합니다; 실무에서 이 접근 방식은 성장하는 레이아웃과 확장되며, 테이블 같은 영역 같은 더 복잡한 구조의 배경에서 잘 번역됩니다. Quis nulla facilis est? 답은 정렬 설정의 일관된 사용과 실생활 시나리오에서의 상세 테스트에 있습니다; 이 챕터는 다양한 컨텍스트에 걸쳐 안정화 효과를 드러내는 데 도움이 됩니다.
상대 컨테이너에서 transform을 사용한 절대 위치 지정된 자식 중앙 정렬
권장: 부모를 position: relative로 설정; 자식을 position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%)로 설정; 이는 단일 아이템을 컨테이너의 중간점에 정확히 배치하며, 가장자리 정렬을 유지합니다.
이것이 작동하는 이유: transform은 자체 너비와 높이의 절반만큼 이동하여 요소의 앵커를 컨테이너 중간점에 배치하는 계산된 오프셋을 생성합니다; 크기가 다르더라도 단일 아이템에 대한 결과는 예측 가능합니다.
RTL 지원: 오른쪽에서 왼쪽으로 레이아웃의 경우, left: 50%를 유지하고 translateX(-50%)를 적용하세요; 양방향에서 결과는 정렬된 상태로 유지됩니다; 미러링을 선호하는 경우, right: 50%로 전환하고 미러링된 번역을 적용하세요.
수직 정렬: top: 50%와 translateY(-50%)를 결합하여 수직 축을 처리하세요; 수평만 정렬하는 경우 translateX(-50%)를 사용하세요. 핵심 키워드는 정렬이며, 동일한 트릭이 두 축을 따라 정렬하는 데 도움이 됩니다.
레이아웃 제약: 플로트나 인라인 자식이 정상 흐름과 충돌할 수 있습니다; 드리프트를 방지하기 위해 자식이 display: block인지 확인하세요; fit-content 너비나 높이가 필요한 경우, 계산된 오프셋은 여전히 적용됩니다; 빈 콘텐츠를 위해 nulla 플레이스홀더를 포함할 수 있습니다.
아이템 컬렉션에 대한 계획: 각 요소를 별도 단위로 취급하세요; 동일한 컬렉션에 다른 요소를 포함하세요; 단계 나열: 다섯 단계: 1) 상대 부모 설정, 2) 절대 자식 배치, 3) transform 적용, 4) 데이터 기반 콘텐츠 검증, 5) 오른쪽에서 왼쪽 페이지 포함 브라우저에서 테스트.
크로스 브라우저 노트: 브라우저는 주요 엔진에 걸쳐 이 접근 방식을 일관되게 보여줍니다; 정렬은 가장자리 경우에 안정적입니다; 부모가 레이아웃 컨텍스트를 부족할 때만 실패합니다; 여러 아이템을 결합해야 하는 경우, 동일한 계획으로 단일 블록에 래핑하세요; 이러한 계획은 미래 조정을 위해 존재합니다.
place-items를 사용한 CSS Grid로 콘텐츠 중앙 정렬

그리드 컨테이너를 두 축을 따라 정렬하여 중간 배치를 달성하고, 콘텐츠를 수직 및 수평으로 정렬하세요.
간단한 그리드에서 효과는 안정적입니다: 아이템 주변의 여백이 사라지며, 왼쪽 가장자리에서 반대쪽까지, 자식이 그리드 셀 내부에 위치하고 두 축 규칙에 의해 배치되기 때문입니다.
그리드 내부의 블록 수준 콘텐츠는 예측 가능하게 동작합니다. 지정된 브레이크포인트에 걸쳐 hubspot 클래스 래퍼에 재사용하고 적용하세요; 뷰포트가 변경됨에 따라 확장이 부드럽게 유지됩니다.
플렉스박스와 비교하여, 이 접근 방식은 형제 요소 간 공간 분배에 의존하지 않습니다; 인라인 트랙 전략과 결합할 수 있지만, 정렬은 일관되게 유지됩니다.
가장자리 경우: 외부 부모 컨테이너에 정의된 높이가 있는 경우, 콘텐츠는 균형을 유지하면서 수직 공간을 채웁니다; 테이블 같은 그리드의 경우, 규칙은 외부 컨테이너의 공간 내부에 여전히 적용됩니다. 왼쪽에서 오른쪽으로, 정렬은 안정적으로 유지되지만, 물결 같은 뷰포트 변화가 발생할 수 있습니다.
팁: 그리드 컨테이너에 단일 hubspot 클래스를 할당하세요; 필요 시 내부 아이템을 블록 수준으로 유지하거나 적절히 인라인으로 하세요; 이 전략은 확장 가능하고 공간 효율적이며, 추가 래퍼를 피하고 여백을 유지합니다.
Ready to leverage AI for your business?
Book a free strategy call — no strings attached.


