수직정렬, 수평 정렬, 중앙 정렬 중 오늘은 수직정렬에 대해 알아보자!
수직정렬에는 3가지 방법이 있다.
padding
속성 사용line-height
속성 사용position
속성과transform
속성 사용
전체적으로 사용할 예제
<div class="각 속성의 이름">
<div>
<h1>제목</h1>
<p>내용</p>
</div>
</div>
부모 <div>
를 간단하게 컨테이너라고 지칭하겠다.
1. padding
속성 사용
.padding {
width: 400px;
background-color: orange;
padding: 100px 0;
}
padding-top
과padding-bottom
에 동일한 값을 준다. (예시에서는padding: 100px 0;
으로 한 번에 top과 bottoom 값 설정)
- 장점 - 컨테이너의 높이값이 정확하지 않을 때 간단하게 사용할 수 있다.
- 단점 - 내가 설정한
padding
값으로 컨테이너의 높이값이 결정되기 때문에 정확한 높이값이 있을 때는 사용하기 어렵다.
2. inline-height
속성 사용
.line-height {
width: 400px;
height: 300px;
line-height: 300px;
background-color: yellow;
}
.line-height > div {
line-height: normal;
display: inline-block;
vertical-align: middle;
}
- 컨테이너 안의 자식 요소가 한 줄인 경우
- 컨테이너의
height
값과line-height
값을 동일하게 설정하는 것만으로 가능하다.
- 컨테이너의
- 컨테이너 안의 자식 요소가 두 줄 이상인 경우
- 위와 마찬가지로 컨테이너의
height
값과line-height
값을 동일하게 설정한다. (예시에서는 300px로 설정) - 자식
<div>
의line-height
속성을 normal 로 설정해 본래 간격으로 돌려놓는다. vertical-align
설정을 하기 위해display
속성을 inline-block 으로 설정한다. (vertical-align
속성은 block 속성에서 적용되지 않기 때문)- 마지막으로
vertical-align
속성을 middle 로 설정한다.
- 위와 마찬가지로 컨테이너의
- 장점 - 컨테이너의 높이값을 정확히 알고 있을 때 사용하기 좋다.
- 단점 - 컨테이너의 높이값을 정확히 모른다면 사용하기 어렵다. 그리고 부모 요소의 높이가 고정되어 있을 때만 사용할 수 있다.
3. position
속성과 transform
속성 사용
.position {
width: 400px;
height: 300px;
background-color: green;
position: relative;
}
.position > div {
position: absolute;
top: 50%;
transform: translate(0, -50%);
}
- 부모
<div>
인 컨테이너의position
속성을 relative 로 설정한다. - 자식
<div>
의position
속성을 absolute 로 설정한다. top: 50%;
로 설정하고transform: translate(0, -50%);
으로 설정한다.
- 장점 -
line-height
속성과는 다르게 부모 요소의 높이값에 변동이 있어도 사용 가능하다. - 단점 -
position
설정으로 인해 다른 레이아웃과의 관계를 신경 써야 한다.
수직 정렬의 3가지 방법과, 각 장단점에 대해 알아보았다.
경우에 따라 알맞은 방법을 사용하는 것이 좋겠쥬? 😉
※ 참고자료
'🌎 Web > CSS' 카테고리의 다른 글
[Bootstrap] navbar(내비게이션바) 오른쪽 정렬, 양쪽 정렬 (0) | 2022.04.04 |
---|---|
[CSS] 중앙 정렬의 3가지 방법(position, flex, table) (0) | 2022.04.03 |
[CSS] background-size, origin, clip (0) | 2022.03.27 |
[CSS] background img 꽉차게 채우는 법 (0) | 2022.03.25 |
[CSS] CSS에서 위치를 담당하는 요소들 (0) | 2022.03.23 |