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

요소의 가로 가운데 정렬은 margin 속성을 이용합니다. CSS에서 텍스트의 가로 가운데 정렬은 text-align 속성을 이용합니다. 다음처럼 세로 정렬을 가운데로 하려면 어떻게 해야 할까요? 여러 가지 방법이 있는데, 그 중 몇 가지를 소개해드립니다.
2 min read

세로 가운데 정렬하는 방법

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

text-align : center;

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

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

세로로 가운데 정렬하는 여러 방법이 있는데, 그 중 몇 가지를 소개해드립니다.

 

방법 1 - padding

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

<div class="lb-wrap">
  <div class="lb-content">
    <h1>HELLO</h1>
  </div>
</div>
.lb-wrap {
  border: 1px solid #444;
  background-color: #c4dfb8;
  box-shadow: 0px 0px 20px 3px #4285f4;
  text-align: center;
  color: #fff;
  width: 100%;
  padding: 125px 0px;
}
.lb-content {
  border: 1px solid #444;
  background-color: #444;
}

 

방법 2 - margin

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

<div class="lb-wrap">
  <div class="lb-content">
    <h1>HELLO</h1>
  </div>
</div>
.lb-wrap {
  border: 1px solid #444;
  background-color: #f9cc9d;
  color: #fff;
  text-align: center;
  width: 100%;
}
.lb-content {
  border: 1px solid #444;
  background-color: #444;
  box-shadow: 0px 0px 15px 5px #4285f4;
  margin: 125px 0px;
}

 

방법 3 - line-height

안쪽 요소의 height와 line-height를 같게 합니다.

<div class="lb-wrap">
  <div class="lb-content">
    <h1 class="a">HELLO</h1>
  </div>
</div>

<div class="lb-wrap">
  <div class="lb-content">
    <h1 class="b">HELLO</h1>
  </div>
</div>
.lb-wrap {
  border: 1px solid #444;
  text-align: center;
  color: #fff;
  width: 100%;
  margin: 10px 0px;
  padding: 100px 0px;
}
.lb-content {
  border: 1px solid #444;
  background-color: #444;
}
.lb-content h1.a {
  height: 100px;
}
.lb-content h1.b {
  height: 100px;
  line-height: 100px;
}

 

방법 4 - display: table-cell

바깥쪽 요소에 display: table-cell을 추가하여 표의 셀처럼 만듭니다.

display : table-cell;

그리고 vertical-align: middle을 추가하여 세로 정렬을 가운데로 만듭니다.

vertical-align : middle;

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

.lb-wrap {
  border: 1px solid #444;
  text-align: center;
  color: #fff;
  width: 100vw;
  height: 300px;
  display: table-cell;
  vertical-align: middle;
}
.lb-content {
  border: 1px solid #444;
  background-color: #444;
}

 

방법 5 - trasform: translate(-50%, -50%)

trasform: translate(-50%, -50%) 속성을 추가해서 세로 정렬을 가운데로 할 수 있습니다.

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%)

 

방법 6 - flex box

CSS3의 flexible box를 이용하면 쉽게 세로 가운데 정렬을 구현할 수 있습니다.

display: flex;
align-items: center;
justify-content: center;

You may like these posts

  • ::selection 웹브라우저에서 텍스트를 마우스로 드래그하면 선택된 글자는 파란색 배경에 흰색을 바뀝니다. 이 색은 CSS로 바꿀 수 있습니다.사용하는 선택자는 가상 요소 ::selection입니다.   예제 1 다음은 텍스트를 선택했을 때 배경은 검은색으로, 글자는 노란색으로 …
  • 체크박스 꾸미는 방법 체크박스를 바로 꾸미는 건 어렵습니다. 그래서 체크박스와 연결된 라벨(label)을 만들고 라벨을 꾸밉니다. 라벨을 클릭하면 체크박스가 체크되고, 다시 클릭하면 체크가 해제되는 성질을 이용합니다. 로딩 중... 잠시만 기다려주세요.자바스크립트를 허용해주세요. !-- …
  • 짧은 밑줄 만들기 밑줄은 보통 text-decoration이나 border 속성으로 만듭니다. 요소보다 짧은 밑줄을 만드는 방법은 :after 선택자를 이용하는 것입니다. 요소 뒤에 선을 만들고 위치와 길이를 정해주면 됩니다.   예제 <h1> 요소에 짧은 밑줄을 만들고 …
  • 체크박스와 라벨 체크박스(checkbox)와 라벨(label)을 나란히 놓았을 때, 높이가 잘 맞지 않는 경우가 발생합니다. 높이를 조정하는 방법은 position 속성을 이용하는 것입니다. position 속성의 값을 relative로 정한 후 top 속성의 값을 적절히 정하면 됩니다. checkbox…
  • 링크 꾸미기 링크가 걸린 글자 꾸미는 방법은 <a> 태그를 선택하여 꾸밉니다. 예를 들어 아래 코드는 링크의 색을 빨간색으로 만듭니다. a { color: red; } 가상 클래스를 이용하면 좀 더 다양하게 꾸밀 수 있습니다. a:link - 방문하지 않은 링크 …
  • em, rem CSS의 길이 단위 중 em과 rem은 상대적으로 크기를 정하는 단위입니다.   em - 상위 요소 기준 em 단위는 상위 요소 크기의 몇 배인지 크기를 정합니다. 예를 들어 font-size: 1.5em; 은 글자 크기를 상위 요소 크기의 1.5 배로 하겠다는 뜻입니다. …

Post a Comment