본문 바로가기
카테고리 없음

HTML/CSS] vertical-align으로 수직 정렬하기

by Seaco :) 2021. 8. 19.

vertical-align 속성은 수직 정렬을 지정하는 속성입니다. 수직 정렬을 해야하기 때문에 inline이나 inline-block 또는 table-cell 엘리먼트에만 적용됩니다. block에는 쓸 수 없다는 건 안 비밀~

먼저 간단하게 표를 이용해서 기준선을 옮겨 보겠습니다. 대표적인 기준선은 다음과 같습니다.

baseline  셀의 기준 선에 내용의 기준선을 맞춤
top 패딩의 위쪽에 내용의 기준선을 맞춤
middle 패딩의 중앙에 내용의 기준선을 맞춤
bottom 패딩의 아래쪽에 내용의 기준선을 맞춤


vertical-align의 기본값은 baseline입니다. baseline으로 해주면 부모의 기준선에 맞추어서 해당 엘리먼트의 기준선을 정렬해줍니다. 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <table>
    <tr>
      <td class="test1">TEST</td>
      <td class="test2">TEST</td>
      <td class="test3">TEST</td>
      <td class="test4">TEST</td>
    </tr>
  </table>
</body>
</html>

table, th, td { border: 1px solid black;}

table{ width: 500px; height: 200px;}

.test1 {vertical-align: baseline;}
.test2 {vertical-align: top;}
.test3 {vertical-align: middle;}
.test4 {vertical-align: bottom;}


 

이번에는 글자들끼리 vertical-align을 맞춰보도록 하겠습니다. 

<!DOCTYPE html> 
<html> 
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="style.css">
</head>
  <body>     
    <div class="content">
      기준
      <span class="One">One</span>
      <span class="Two">Two</span>
      <span class="Three">Three</span>
      <span class="Four">Four</span>
    </div>
  </body> 
</html>

.content{
  background-color:blanchedalmond;
}

.One {
  font-size: 100px;
  background-color:burlywood;
}

.Two {
  font-size: 50px;
  background-color: skyblue;
}

.Three {
  font-size: 70px;
  background-color: pink;
}

.Four {
  font-size: 40px;
  background-color: yellow;
}

 

1. Two 클래스에 vertical-align: top 주기

1. One 클래스는 아무 설정도 해주지 않아서 vertical-align이 기본값인 baseline입니다. 그래서 부모요소의 baseline 즉, 부모요소의 기준선과 같은 걸 확인할 수있습니다. 

2. Two 클래스는  vertical-align: top인데요. 하늘색 박스가 이 줄에서 가장 높이가 높은 요소(One, 갈색박스) 위에 맞춰진걸 볼 수 있습니다. 

 

2. One 클래스에 vertical-align: top 주기

1. One에 vertical-align: top을 주면 가장 높은 요소의 top에 기준선이 맞춰지게됩니다. One클래스를 제외하고 가장 높은 요소는 Three이니까 Three클래스와 기준선이 맞춰지겠죠?!

2. 그런데 Three가 올라가다보니까 baseline이 Three가 되게됩니다. 기준, Two, Four는 vertical-align이 딱히 정해진게 없잔아요.그래서 Three가 맞춰놓은 기준선에 맞춰지면서 다 올라가게 된겁니다.

3. 좀 헬갈리시죠? 여기서 제가 드리고 싶은 말은 baseline은 변한다는 것입니다. 모든 조건들을 충족시키면서 가장 높이를 낮게하기위해 변해요. 그렇기때문에 baseline이 고정됐다고 생각하고 간격을 맞추시면 헷갈리게 됩니다.