CSS / 세로 가운데 정렬하는 방법

CSS에서 텍스트의 가로 가운데 정렬은 text-align 속성을 이용합니다.

text-align: center;

요소의 가로 가운데 정렬은 margin 속성을 이용합니다.

margin-left: auto;
margin-right: auto;

그렇다면 다음처럼 세로 정렬을 가운데로 하려면 어떻게 해야 할까요?

여러 가지 방법이 있는데, 그 중 세 가지를 소개해드립니다.

방법 1 - padding 속성 이용하기

바깥쪽 요소에 padding 속성을 추가해서 세로 정렬을 가운데로 할 수 있습니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      .a {
        border: 1px solid #444444;
        width: 500px;
        padding: 100px 0px;
      }
      .b {
        border: 1px solid #444444;
        background-color: #444444;
      }
      h1 {
        text-align: center;
        color: #ffffff;
      }
    </style>
  </head>
  <body>
    <div class="a">
      <div class="b">
        <h1>Lorem Ipsum Dolor</h1>
      </div>
    </div>
  </body>
</html>

방법 2 - margin 속성 이용하기

안쪽 요소에 margin 속성을 추가해서 세로 정렬을 가운데로 할 수 있습니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      .a {
        border: 1px solid #444444;
        width: 500px;
      }
      .b {
        border: 1px solid #444444;
        background-color: #444444;
        margin: 100px 0px;
      }
      h1 {
        text-align: center;
        color: #ffffff;
      }
    </style>
  </head>
  <body>
    <div class="a">
      <div class="b">
        <h1>Lorem Ipsum Dolor</h1>
      </div>
    </div>
  </body>
</html>

방법 3 - display: table-cell 이용하기

바깥쪽 요소에

display: table-cell;

을 추가하여 표의 셀처럼 만듭니다. 그리고

vertical-align: middle;

을 추가하여 세로 정렬을 가운데로 만듭니다.

위 방법들과는 다르게, 바깥쪽 요소의 높이(height)를 정해줘야 합니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      .a {
        border: 1px solid #444444;
        width: 500px;
        height: 300px;
        display: table-cell;
        vertical-align: middle;
      }
      .b {
        border: 1px solid #444444;
        background-color: #444444;
      }
      h1 {
        text-align: center;
        color: #ffffff;
      }
    </style>
  </head>
  <body>
    <div class="a">
      <div class="b">
        <h1>Lorem Ipsum Dolor</h1>
      </div>
    </div>
  </body>
</html>

CSS3의 flexible box를 이용하면 쉽게 세로 가운데 정렬을 구현할 수 있습니다. 하지만 IE 11부터 지원한다는 문제가 있습니다.

Related Posts

CSS / box-sizing / 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성

CSS / box-sizing / 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성

개요 box-sizing은 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성입니다. 기본값 : content-box 상속 : No 애니메이션 : No 버전 : CSS Level 3 문법 box-sizing: content-box | border-box | initial | inherit content-box : 콘텐트 영역을 기준으로 크기를 정합니다. border-box : 테두리를 기준으로 크기를 정합니다. initial : 기본값으로 설정합니다. inherit : 부모 요소의 속성값을 상속받습니다. 예제 <!doctype html> <html lang="ko"> <head> ...

CSS / 애니메이션 / transition / transition-delay - transition 시작을 연기하는 속성

CSS / 애니메이션 / transition / transition-delay - transition 시작을 연기하는 속성

transition-delay transition-delay로 transition이 시작하는 시간을 연기할 수 있습니다. IE는 버전 10부터 지원합니다. 문법 transition-duration: time| initial | inherit 기본값은 0s입니다. 시간 단위는 초(s) 또는 1/1000초(ms)를 사용합니다. initial : 기본값으로 설정합니다. inherit : 부모 요소의 속성값을 상속받습니다. 예제 체크박스에 체크하면 1초에 걸쳐 박스가 커집니다. 첫 번째 박스는 0.5초 대기 후 커집니다. 즉, 박스가 커지는데 1.5초가 걸립니다. 두 번째 박스는 1초 대기 후 커집니다. ...

CSS / 선택자(Selector) / 가상 요소

CSS / 선택자(Selector) / 가상 요소

가상 요소 가상 요소(Pseudo-elements)는 요소의 특정 부분을 선택합니다. 가상 클래스는 콜론을 한 개(:), 가상 요소는 콜론을 두 개(::) 씁니다. 하지만 콜론을 한 개(:)만 써도 대부분의 브라우저에서 제대로 작동합니다. ::first-line ::first-line은 요소의 첫번째 줄을 선택합니다. 예를 들어 p::first-line { color: red; } 는 p 요소의 첫번째 줄의 글자색을 빨간색으로 만듭니다. ::first-letter ::first-letter는 요소의 첫번째 문자를 선택합니다. 예를 들어 p::first-letter { ...

CSS / 선택자(Selector) / 하위 선택자, 자식 선택자, 형제 선택자, 인접 형제 선택자

CSS / 선택자(Selector) / 하위 선택자, 자식 선택자, 형제 선택자, 인접 형제 선택자

하위 선택자 하위 선택자(Descendant Selector)는 특정 요소의 하위에 있는 요소를 선택합니다. 예를 들어 div blockquote 는 div 요소의 하위에 있는 blockqoute 요소를 선택합니다. 이때 div와 blockquote 사이에 요소가 더 있어도 선택이 됩니다. 즉 <div> <blockquote>...</blockquote> </div> 일 때도 blockquote를 선택하고, <div> <aside> <blockquote>...</blockquote> </aside> </div> 일 때도 blockquote를 선택합니다. 자식 선택자 자식 선택자(Child Selector)는 특정 요소의 자식 ...

CSS / line-height / 줄 높이 정하는 속성

CSS / line-height / 줄 높이 정하는 속성

개요 line-height는 줄 높이를 정하는 속성입니다. 기본값 : normal 상속 : Yes 애니메이션 : Yes 버전 : CSS Level 1 문법 line-height: normal | length | number | percentage | initial | inherit normal : 웹브라우저에서 정한 기본값입니다. 보통 1.2입니다. length : 길이로 줄 높이를 정합니다. number : 글자 크기의 몇 배인지로 줄 높이를 정합니다.  percentage : 글자 크기의 몇 %로 줄 ...

CSS / border / 테두리 만드는 속성

CSS / border / 테두리 만드는 속성

개요 border는 테두리를 만드는 속성입니다. 위, 오른쪽, 아래, 왼쪽 선을 한 번에 정합니다. 기본값 : medium, none, color 상속 : No 애니메이션 : Yes 버전 : CSS Level 1 문법 border: border-width border-style border-color | initial | inherit border-width : 선의 두께를 정합니다. 기본값은 medium입니다. border-style : 선의 모양을 정합니다. 기본값은 none입니다. border-color : 선의 색을 정합니다. 기본값은 꾸미려는 요소의 ...

CSS / background-origin / 배경 이미지를 어느 영역부터 채워나갈지를 정하는 속성

CSS / background-origin / 배경 이미지를 어느 영역부터 채워나갈지를 정하는 속성

개요 HTML 요소는 박스로 이루어져 있고, 바깥 여백 영역(Margin Area), 테두리 영역(Border Area), 안쪽 여백 영역(Padding Area), 내용 영역(Content Area)으로 구분합니다. background-origin으로 배경 이미지를 어느 영역부터 채워나갈지를 정합니다. 기본값 : padding-box 상속 : No 애니메이션 : No 버전 : CSS Level 3 문법 background-origin: border-box | padding-box | content-box | initial | inherit; border-box : 테두리 영역 왼쪽 위부터 채웁니다. padding-box : 안쪽 여백 영역 왼쪽 ...

CSS / opacity / 요소를 투명하게 만드는 속성

CSS / opacity / 요소를 투명하게 만드는 속성

개요 opacity로 요소의 투명도를 정할 수 있습니다. 기본값 : 1 상속 : No 애니메이션 : Yes 버전 : CSS Level 3 문법 opacity: number | initial | inherit number : 0.0부터 1.0까지의 수를 넣습니다. initial : 기본값으로 설정합니다. inherit : 부모 요소의 속성값을 상속받습니다. 숫자가 작을수록 투명해집니다. 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS Reference ...

CSS / 세로 가운데 정렬하는 방법

CSS / 세로 가운데 정렬하는 방법

CSS에서 텍스트의 가로 가운데 정렬은 text-align 속성을 이용합니다. text-align: center; 요소의 가로 가운데 정렬은 margin 속성을 이용합니다. margin-left: auto; margin-right: auto; 그렇다면 다음처럼 세로 정렬을 가운데로 하려면 어떻게 해야 할까요? 여러 가지 방법이 있는데, 그 중 세 가지를 소개해드립니다. 방법 1 – padding 속성 이용하기 바깥쪽 요소에 padding 속성을 추가해서 세로 정렬을 가운데로 할 수 있습니다. <!doctype html> <html lang="ko"> ...

CSS / border-style / 테두리 모양을 정하는 속성

CSS / border-style / 테두리 모양을 정하는 속성

개요 border-style은 테두리(border)의 모양을 정하는 속성입니다. 기본값 : none 상속 : No 애니메이션 : No 버전 : CSS Level 1 border-style은 border-top-style, border-right-style, border-bottom-style, border-left-style의 축약형입니다. 문법 border-style:none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset | initial | inherit initial : 기본값으로 설정합니다. inherit : 부모 요소의 속성값을 상속받습니다. initial과 ...

CSS 강좌