CSS 강좌 / 양쪽 배분(균등 분할) 정렬 방법

문단 정렬을 양끝으로 꽉차게 하는 경우가 있습니다. 한글에서는 배분 정렬, 워드에서는 균등 분할이라고 합니다. 일반적인 문단에서는 거의 사용하지 않고, 표에서 제목을 넣을 때 많이 사용합니다.

하지만 CSS에는 그러한 정렬이 없습니다. text-align 속성의 justify가 있지만, 그건 빈 공간을 늘려서 양 끝으로 맞추는 게 아닙니다. 간단한 예는 다음과 같습니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      table {
        border: 1px solid #cccccc;
      }
      th, td {
        padding: 10px 20px;
        border: 1px solid #cccccc;
      }
      th {
        text-align: justify;
      }
    </style>
  </head>
  <body>
    <table>
      <tr>
        <th>이 름</th>
        <td>홍 길 동</td>
      </tr>
      <tr>
        <th>이 메 일 주 소</th>
        <td>gd@aaa.com</td>
      </tr>
      <tr>
        <th>이 동 통 신</th>
        <td>010-1111-1111</td>
      </tr>
    </table>
  </body>
</html>

이름, 이동통신 같은 것을 이메일주소처럼 양끝에 맞춤을 하고 싶다면 트릭을 써야 합니다. justify 정렬 상태에서 줄바꿈이 생기면 단어 사이의 간격이 늘어나는 성질을 이용합니다.

th:after {
  content: "";
  display: inline-block;
  width: 100%;
}

정렬은 원하는 형태로 만들어졌지만, 아래쪽에만 여백이 생기므로 위에도 넣어줍니다.

th:before {
  content: "";
  display: inline-block;
  width: 100%;
}

의도하지 않은 여백은 line-height 속성으로 조정합니다.

th {
  text-align: justify;
  line-height: 0;
}

주의할 점은, 양쪽 배분 정렬을 위해서는 글자 사이에 공백이 있어야 한다는 것입니다. 즉, [이름]이 아니라 [이 름]이라고 해야 합니다.