Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 괴정동와플
- 크롬피싱
- 대전괴정동림벅
- 크롬방문객
- 대전와플
- 대전돼지고기
- 대전괴정동돈덩어리
- height%
- 부드러운와플
- 크롬행운의방문객
- 괴정동등갈비전골
- 크롬이벤트
- 대전괴정동맛집
- 괴정동림벅
- 반응형height
- table-cell
- 괴정동돈덩어리
- 크롬연간설문조사
- 행운의방문객
- 대전림벅
- 반응형div박스
- 반응형div
- 가로세로비율div
- 괴정동삼겹살
- 크롬설문조사
- 대전등갈비전골
- 둔산동해물파전
- 메이플와플
- 높이%
- 반응형padding-bottom
Archives
- Today
- Total
오늘 뭐했지?
[html/css] table-cell 속성을 이용해서 div 세로 가운데 정렬 하는 법 본문
[html/css] table-cell 속성을 이용해서 div 세로 가운데 정렬 하는 법
퍼블리싱을 하다 보면 세로 가운데 정렬을 해야 할 경우가 생기기 마련입니다.
그 div가 만약 고정된 세로 값을 가지고 있다면 비교적 간단하게 할 수 있지만... 만약 가변적인 세로 값을 가지고 있다면... 굉장히 귀찮아지죠. 하지만 이런 경우는 흔한 일이기도 해서 제가 가장 자주 쓰는 방법인 table-cell 속성을 이용해서 세로 중앙 정렬하는 방법을 소개해드리겠습니다.
일단 제가 만들고자 하는 화면은 이와 같습니다.
테이블 형식을 이용하면 한번에 되겠지만 반응형으로 작업해야한다던가 뭔가 제약조건이 있어서 div로 작업해야만 할때 사용할 수 있는 방법입니다.
결론적으로 말하자면 세로정렬하고자 하는 div를 div로 한 번 감싸고
display: table-cell; vertical-align:middle; height:(부모 div의 높이 값);
스타일을 적용해주면 됩니다.
참고를 위해 소스 올려 놓습니다.
HTML
<div class="wrap">
<div class="img_box">
<img src="test-img.jpg">
<div>이 블로그는 사실 제가 터득한 방법을 제 스스로 다시 한번 정리하기 위한 블로그이며 정보가 정확하지 않을 수도 있습니다. 그래도 누군가에게는 도움이 되었으면 좋겠네요.</div>
</div>
<div class="img_box">
<img src="test-img.jpg">
<div>옆에 있는 고양이는 제가 그린 고양이에요.</div>
</div>
<div class="img_box">
<img src="test-img.jpg">
<div>이렇게 글자수가 다양한 문장을 쓰다보면 가변적인 높이를 갖는 div를 갖게됩니다.</div>
</div>
<div class="img_box">
<img src="test-img.jpg">
<div>보통은 고정된 글자수나 높이를 가진 경우가 많지만 텍스트를 입력받아서 사용하는 경우엔 가변적인 높이를 갖게 될 수 밖에 없죠</div>
</div>
<div class="img_box">
<img src="test-img.jpg">
<div>이제 더이상은 쓸 말이 없네요.. 이게 첫번째 글인데 생각보다 블로그로 정보를 올린다는건 훨씬 더 어려운 일이네요.. </div>
</div>
<div class="img_box">
<img src="test-img.jpg">
<div>여태까지 다른분들이 올려놓은 글을 보기만 했었는데 공부도 할 겸 정리해서 올려보려고 합니다. </div>
</div>
<div class="img_box">
<img src="test-img.jpg">
<div>야옹이는 야옹</div>
</div>
</div>
CSS
<style>
.wrap{
width:80%;
margin:100px auto;
border-top: 1px solid #efefef;
border-left: 1px solid #efefef;
overflow:hidden;
}
.img_box{
width: 25%;
display: inline-block;
float: left;
box-sizing: border-box;
border-bottom: 1px solid #efefef;
border-right: 1px solid #efefef;
}
.img_box img{
width:40%; float:left;
}
.img_box > div{
width:50%; padding:0px 5%; display:table-cell; font-size:13px; vertical-align:middle; height:152px;
}
</style>
css의 경우 제일 마지막 .img_box > div 부분이 핵심입니다.
display속성을 table-cell 로 해주고, vertical-align속성을 middle로 적용한 후 감싸주는 div의 높이값을 height에 넣어주면 됩니다.
확인해보면 아래와 같이 자동으로 세로 가운데 정렬이 된 것을 볼 수 있습니다.
※ 참고로 위의 소스의 경우 글자수가 부모 div 높이 이상으로 늘어날 경우 깨지게 됩니다.
읽어주셔서 감사합니다.
'웹디자인 > HTML,CSS' 카테고리의 다른 글
[HTML/CSS] 반응형 %를 이용해서 가로세로 비율을 맞춘 div 박스 생성하는법 (0) | 2019.10.29 |
---|---|
[html/css] ie에서 table-cell 속성사용 시 word-break, word-wrap 자동 줄바꿈 안되는 경우 해결방법 (1) | 2019.10.18 |