본문 바로가기
Web 개발/HTML.CSS

HTML/CSS 가운데 정렬 정리

by hooni40 2021. 5. 16.
728x90
반응형

가운데 정렬이 너무 헷갈려서 display 요소별로 정리해놓으려 합니다.

 

가로 가운데 정렬

inline 요소 : inline 또는 inline-block 요소면 부모 태그에 text-align: center; 

block 요소 : margin-left: auto;, margin-right: auto; 사용

 

세로 가운데 정렬

1. vertical-align: middle; 이용해서 부모 요소의 텍스트와 가운데를 맞춘다

<head>
  <style>
    .container {
    width: 300px;
    height: 400px;
    background-color: gray;
    text-align: center;
  }

  .helper {
    display: inline-block;
    height: 100%;
    vertical-align: middle;

    /* 설명을 위해서 */
    width: 10px;
    background-color: red;
  }

  .info {
    background-color: lime;
    display: inline-block;
    vertical-align: middle;
  }
  </style>
</head>
<body>
  <div class="container">
<!--부모요소의 text-->
  x 
    <div class="info">
      <h1>Hello!</h1>
      <p>My name is young.</p>
    </div>
  </div>

</body>

2. 이것을 화면의 가운데로 정렬하려면 세로 길이가 100%인 요소를 만든 후 그 요소에도 vertical-align: middle; 적용 

<head>
  <style>
    .container {
    width: 300px;
    height: 400px;
    background-color: gray;
    text-align: center;
  }

  .helper {
    display: inline-block;
    height: 100%;
    vertical-align: middle;

    /* 설명을 위해서 */
    width: 10px;
    background-color: red;
  }

  .info {
    background-color: lime;
    display: inline-block;
    vertical-align: middle;
  }
  </style>
</head>
<body>
  <div class="container">
    x
    <div class="helper"></div>
    <div class="info">
      <h1>Hello!</h1>
      <p>My name is young.</p>
    </div>
  </div>
</body>

 

또 다른 방법으로는. info를 inline-block으로 설정해주고 line-height 속성을 사용하는것입니다.

여기서 line-height 속성은 자식들에게 상속되기 때문에. info에 line-height: normal;을 꼭 써줘야 합니다.

<head>
  <style>
    .container {
      width: 300px;
      height: 400px;
      background-color: gray;
      text-align: center;
      line-height: 400px;
    }

    .info {
      background-color: lime;
      display: inline-block;
      line-height: normal;
      vertical-align: middle;
    }
  </style>
</head>
<body>
  <div class="container">
    x
    <div class="info">
      <h1>Hello!</h1>
      <p>My name is young.</p>
    </div>
  </div>
</body>

+) IMG를 vertical-align: middle;을 하면 이미지의 중간이 baseline과 맞춰지게 됩니다

 

JSFiddle

위 그림에서 보면 이미지의 중간이 verticla 본문의 x의 baseline에 정렬되는 것을 확인할 수 있습니다.

 

이외에도 flexbox를 이용하는 방법도 있다고 하여 공부 후에 정리 글을 올리겠습니다!

728x90
반응형

'Web 개발 > HTML.CSS' 카테고리의 다른 글

HTML/CSS - Inline/block  (0) 2021.05.22
HTML/CSS - Position  (0) 2021.05.18
HTML/CSS - Baseline/Vertical-align  (0) 2021.05.15
HTML/CSS - 하이퍼링크  (0) 2021.05.09
HTML/CSS - display  (0) 2021.05.08

댓글