화면 정중앙 정렬방법 6가지 입니다.




1. position:absolute와 margin 마이너스값을 이용한 중앙 정렬

  • 장점 : ie7 이상 모든 브라우저에서 지원 가능합니다.
  • 단점 : width와 height값이 고정사이즈인 상태에서만 사용할 수 있습니다.



<div class="layer">Layer Contents</div>

.layer{ position:absolute; top:50%; left:50%; width:100px; height:100px; background:#f00; margin:-50px 0 0 -50px; }



링크예제 : http://codepen.io/myting/pen/LpKxro






2. position:absolute와 inline-block을 이용한 중앙 정렬

  • 장점
    • ie7 이상 모든 브라우저에서 지원 가능합니다.
    • layer 안의 content 영역이 고정값이 아니라 가변이어도 자동으로 중앙정렬이 됩니다.
  • 단점
    • 불필요한 span 태그가 하나더 필요합니다. (모바일에선 :after로 대체 가능)




1
2
3
4
<div class="layer">
  <span class="content">Layer Contents</span>
  <span class="blank"></span>
</div>





1
2
3
.layer{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}
.layer .content{display:inline-block;background:#f00;vertical-align:middle}
.layer .blank{display:inline-block;width:0;height:100%;vertical-align:middle}
cs






3. position:absolute와 tabel-cell을 이용한 중앙 정렬

  • 장점
    • ie8 이상 모든 브라우저에서 지원 가능합니다.
    • layer 안의 content 영역이 고정값이 아니라 가변이어도 자동으로 중앙정렬이 됩니다.
  • 단점
    • 코드 중첩이 여러번 되어야 합니다.

1
2
3
4
5
<div class="layer">
  <div class="layer_inner">
    <div class="content">Layer Contents</div>
  </div>
</div>




1
2
3
.layer{position:absolute;display:table;top:0;left:0;width:100%;height:100%}
.layer .layer_inner{display:table-cell;text-align:center;vertical-align:middle}
.layer .content{display:inline-block;background:#f00}
cs





4. position:absolute와 transform을 이용한 중앙 정렬

  • 장점
    • ie9 이상 모든 브라우저에서 지원 가능합니다. (모바일 작업시 적합)
    • layer 안의 content 영역이 고정값이 아니라 가변이어도 자동으로 중앙정렬이 됩니다.
    • transform 속성은 GPU가속이 가능해서 속도향상에 도움이 됩니다.
    • 짧은 소스로 간결하게 만들수 있습니다.
  • 단점
    • 모바일에서 사용시 기기별로 버그가 생길 가능성이 있습니다.

1
<div class="layer">Layer Contents</div>
cs


1
2
3
4
5
6
7
.layer{
  position:absolute;
  top:50%;
  left:50%;
  background:#f00;
  transform:translate(-50%, -50%)
}










5. position:absolute와 flex를 이용한 중앙 정렬

  • 장점
    • ie10 이상 모든 브라우저에서 지원 가능합니다. (모바일 작업시 적합)
    • layer 안의 content 영역이 고정값이 아니라 가변이어도 자동으로 중앙정렬이 됩니다.
    • 짧은 소스로 간결하게 만들수 있습니다.
  • 단점
    • 구버전 브라우저에서는 display:box와 병행해야 합니다.

1
2
3
<div class="layer">
  <span class="content">Layer Contents</span>
</div>

s


1
2
3
4
5
6
7
8
9
10
11
12
.layer{
  position:absolute;
  top:0;right:0;bottom:0;left:0;
  display:flex;
  align-items:center;
  justify-content:center;
 
  display:-webkit-flex;
  -webkit-align-item;center;
  -webkit-justify-content:center;
}
.layer .content{background:#f00}







6. position:absolute와 box를 이용한 중앙 정렬

  • 기본 적인 내용은 위에 설명한 flex와 같습니다. 브라우저 구버전을 대응하기 위해서 box를 같이 적용해 보았습니다.

1
2
3
<div class="layer">
  <span class="content">Layer Contents</span>
</div>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.layer{
  position:absolute;
  top:0;right:0;bottom:0;left:0;
  display:-webkit-box;
  display:-moz-box;
  display:-ms-flexbox;
  display:-webkit-flex;
  display:flex;
 
  align-items:center;
  justify-content:center;
  -webkit-align-items:center;
  -webkit-justify-content:center;
 
  -webkit-box-pack:center;
  -webkit-box-align:center;
  -moz-box-pack:center;
  -moz-box-align:center;
  -ms-box-pack:center;
  -ms-box-align:center;
}
.layer .content{background:#f00}



링크예제 : http://codepen.io/myting/pen/PPMKZG


'공학' 카테고리의 다른 글

php 간단 암호화 함수  (0) 2019.07.13
Born AI 세대  (0) 2019.01.26
티스토리 쉽게 코드입력하기(복사/붙여넣기)  (0) 2016.08.03
탭메뉴(php) 소스  (0) 2016.04.21
나비에 스톡스 방정식(Navier-Stokes equation)  (0) 2016.04.20
Deep Link 란?  (0) 2016.03.27
분자의 운동은 어떻게 측정할까?  (0) 2016.03.24

+ Recent posts