CSS 상하좌우 중앙정렬 방법 transform, flex, vertical-align

CSS 작업 시 상하좌우 중앙정렬을 많이 사용합니다. 특히 높이(height)가 고정일 때와 반응형으로 높이(height)가 변동일 때 사용방법이 좀 다른데요. 이번 시간은 상하좌우 중앙정렬에 대해서 한번 알아보겠습니다.

사용 전 기본 세팅

// HTML
<div class="contents-wrap">
    <div class="txt-wrap">상하좌우 정렬</div>
</div>
// CSS
.contents-wrap {
    width: 100%;
    height: 250px;
}
.txt-wrap {
    background-color:skyblue;
    color:#fff;
    padding:10px;
}

transform 사용법

.contents-wrap {
    position: relative;
    background-color:#eee;
}
.contents-wrap .txt-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform:translate(-50%, -50%);
}

결과보기

상하좌우 정렬

flex 사용법

.contents-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color:#ddd;
}

결과보기

상하좌우 정렬
vertical-align 사용법
.contents-wrap {
    background-color:#ccc;
    text-align:center;
    vertical-align:middle;
    line-height:250px;
}

결과보기

상하좌우 정렬
마무리

transform, flex의 경우는 가로(width), 높이(height)가 변동이 있어도 항상 중앙정렬을 하지만, vertical-align의 경우는 높이가 변동이 생기면, line-height의 값도 변동값을 적용해줘야 하는 번거로움이 있습니다. 최근에는 사용법이 간단한 flex를 주로 사용하고 있습니다.




CSS background 이미지에 그라데이션 : linear-gradient