이 두 솔루션에는 두 개의 중첩 요소 만 필요합니다.
첫 번째 - 콘텐츠가 정적 인 경우 상대 및 절대 위치 지정 (수동 중심).
.black {
position:relative;
min-height:500px;
background:rgba(0,0,0,.5);
}
.message {
position:absolute;
margin: 0 auto;
width: 180px;
top: 45%; bottom:45%; left: 0%; right: 0%;
}
https://jsfiddle.net/GlupiJas/5mv3j171/
또는 유동적 인 디자인의 경우 -정확한 콘텐츠 센터 사용을 위해 대신 아래 예 :
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
콘텐츠가 창 높이의 50 %를 초과 할 경우 '최소 높이'설정이 필요합니다. 모바일 및 태블릿 장치 용 미디어 쿼리를 사용하여이 높이를 조작 할 수도 있습니다. 하지만 반응 형 디자인으로 플레이하는 경우에만 가능합니다.
나는 당신이 더 나아가서 어떤 이유로 필요한 경우 최소 높이 또는 고정 높이를 조작하기 위해 간단한 JavaScript / JQuery 스크립트를 사용할 수 있다고 생각합니다.
둘째 - 콘텐츠가 유동적 인 경우 u는 수직 정렬 및 텍스트 정렬이 중앙에있는 테이블 및 테이블 셀 CSS 속성을 사용할 수도 있습니다.
/*in a wrapper*/
display:table;
과
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
완벽하게 작동하고 확장되며, 종종 개체의 너비를 조작하는 그리드 레이아웃 및 미디어 쿼리와 함께 반응 형 웹 디자인 솔루션으로 사용됩니다.
.black {
display:table;
height:500px;
width:100%;
background:rgba(0,0,0,.5);
}
.message {
display:table-cell;
vertical-align: middle;
text-align: center;
}
https://jsfiddle.net/GlupiJas/4daf2v36/
정확한 콘텐츠 센터링을 위해 테이블 솔루션을 선호하지만, 어떤 경우에는 상대적 절대 위치 지정이 특히 콘텐츠 정렬의 정확한 비율을 유지하지 않으려는 경우 더 나은 작업을 수행합니다.