본문 바로가기

DEV/HTML&CSS

CSS 가운데 정렬

가로 중앙 정렬

폭이 정해진 블럭 요소
auto는 마진의 왼쪽과 오른쪽 여백이 동일하게 나눠짐을 의미한다.
  1. p {
  2. width: 100px; /* 정렬하려는 요소의 넓이를 반드시 지정 */
  3. margin: 0 auto;
  4. }

가변폭인 블럭 요소
ie8 이상
가운데 정렬이 되는 것은 item 클래스의 요소이다. 인라인 요소도 가능
  1. <style>
  2. .horizon{ display: table; margin-left: auto; margin-right: auto; }
  3. </style>
  4.  
  5. <div class="horizon">
  6. <div class="item">block item</div>
  7. </div>
ie6 ~ 7 호환
  1. <style>
  2. .horizonCont{ text-align: center; }
  3. .horizon{ display: table; margin-left: auto; margin-right: auto; display: inline-block; }
  4. </style>
  5.  
  6. <div class="horizonCont">
  7. <span class="horizon">
  8. <span class="item" style="display:block">block item</span>
  9. </span>
  10. </div>
inline-block을 지원하지 않는 브라우저는 display: table과 margin을 적용받아 가운데 정렬이 되고, 나머지 브라우저에서는 text-align: center와 display: inline-block이 적용되어 가운데 정렬이 된다.

포지션이 absolute일 때
포지션이 absolute일 때 중앙정렬 (가로 + 세로)
left와 top을 50%로 준 뒤 margin-top: -(요소의 height/2); margin-left: -(요소의 width/2); 를 해준다

  1. <style>
  2. .align_center{ position:absolute; width:100px; height:50px; left:50%; top:50%; margin-left:-50px; margin-top:-25px;
  3. </style>
  4.  
  5. <div class="align_center">
  6. <p>중앙정렬 (가로 + 세로)</p>
  7. </div>



세로 중앙 정렬

테이블안의 요소 정렬
  1. <style>
  2. table { vertical-align: middle; }
  3. </style>

div태그의 display속성을 table로 설정하는 방법
  1. <style>
  2. #wrapper { display: table; }
  3. #cell { display: table-cell; vertical-align: middle; }
  4. </style>
  5.  
  6. <div id="wrapper">
  7. <div id="cell">
  8. <div class="content">내용내용</div>
  9. </div>
  10. </div>
높이가 변해도 상관없다(CSS에 높이를 지정하지 않아도 된다).
wrapper에 공간이 없어도 내용이 잘리지 않는다.
IE7 이하에서 작동하지 않는다.

absolute 속성을 이용하는 방법
  1. <style>
  2. #content { position: absolute; top: 50%; height: 240px; margin-top: -120px; }
  3. </style>
  4.  
  5. <div id="content">내용내용</div>

float 속성을 이용하는 방법
  1. <style>
  2. #floater {float:left; height:50%; margin-bottom:-120px;}
  3. #content {clear:both; height:240px; position:relative;}
  4. </style>
  5.  
  6. <div id="floater"></div>
  7. <div id="content">
  8. Content Here
  9. </div>
모든 브라우저에서 작동한다.
충분한 공간이 없을 때 (예컨대 윈도우 사이즈를 줄일 때) 콘텐츠가 잘리고 스크롤바가 나타난다.

line-height 속성을 이용하는 방법
텍스트일때만 작동한다.
공간이 없어도 잘리지 않는다.
한 줄 이상이 되면 깨진다.
  1. <style>
  2. #content { height: 100px; line-height: 100px; }
  3. </style>
  4.  
  5. <div id="content">Content Here</div>



반응형

'DEV > HTML&CSS' 카테고리의 다른 글

[CSS] 치지직 채팅 커스텀CSS  (0) 2024.04.17
[CSS] 트윕 챗박스 커스텀CSS  (0) 2019.04.03
CSS 포지션(Position)  (0) 2019.04.03
[CSS]브라우저별 opacity 설정  (0) 2017.03.14
[CSS]white-space  (0) 2017.03.14