나는 div를 따랐다.
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
div의 가운데와 가운데에 위치하도록 이미지를 정렬하는 방법은 무엇입니까?
나는 div를 따랐다.
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
div의 가운데와 가운데에 위치하도록 이미지를 정렬하는 방법은 무엇입니까?
답변:
body {
margin: 0;
}
#over img {
margin-left: auto;
margin-right: auto;
display: block;
}
<div id="over" style="position:absolute; width:100%; height:100%">
<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>
display: block;
내 함정이었다. TnX
display: block
기본값은 display: inline
에 따른 w3schools.com/cssref/pr_class_display.asp . 왜 블록을 사용해야합니까? 나는 나를 위해 일했지만 블록이 img를 중심으로하고 인라인이 아닌 이유를 잘 모르겠습니다.
<div style="display:table-cell; vertical-align:middle; text-align:center">
<img src="img.png">
</div>
Flexbox 레이아웃을 사용하여 수행 할 수도 있습니다.
정적 크기
.parent {
display: flex;
height: 300px; /* Or whatever */
background-color: #000;
}
.child {
width: 100px; /* Or whatever */
height: 100px; /* Or whatever */
margin: auto; /* Magic! */
}
<div class="parent">
<img class="child" src="https://i.vimeocdn.com/portrait/58832_300x300"/>
</div>
동적 크기
html, body {
width: 100%;
height: 100%;
display: flex;
background-color: #999;
}
* {
margin: 0;
padding: 0;
}
.parent {
margin: auto;
background-color: #000;
display: flex;
height: 80%;
width: 80%;
}
.child {
margin: auto; /* Magic! */
max-width: 100%;
max-height: 100%;
}
<div class="parent">
<img class="child" src="https://i.vimeocdn.com/portrait/58832_300x300"/>
</div>
이 기사 에서 예제를 찾았습니다 . 레이아웃을 사용하는 방법을 설명하는 훌륭한 작업입니다.
그 이미지가 컨테이너 내에서 세로로 가운데에 오기를 원했던 것 같습니다. (나는 그것을 제공 한 답변을 보지 못했다)
HTML
<div id="over">
<span class="Centerer"></span>
<img class="Centered" src="http://th07.deviantart.net/fs71/200H/f/2013/236/d/b/bw_avlonas_a5_beach_isles_wallpaper_image_by_lemnosexplorer-d6jh3i7.jpg" />
</div>
CSS
*
{
padding: 0;
margin: 0;
}
#over
{
position:absolute;
width:100%;
height:100%;
text-align: center; /*handles the horizontal centering*/
}
/*handles the vertical centering*/
.Centerer
{
display: inline-block;
height: 100%;
vertical-align: middle;
}
.Centered
{
display: inline-block;
vertical-align: middle;
}
참고 : 이 솔루션은 요소 내의 요소를 정렬하는 것이 좋습니다. IE7의 경우 .Centered
블록 요소에 클래스를 적용 할 때 다른 트릭을 사용하여 inline-block
작업해야합니다. (IE6 / IE7은 블록 요소에서 인라인 블록으로 잘 재생되지 않기 때문에)
#over { position:absolute; width:100%; height:100%;
?
display : flex css 속성을 사용하면이 작업을 쉽게 수행 할 수 있습니다.
#over {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
#over {position:relative; text-align:center;
width:100%; height:100%; background:#CCC;}
#over img{
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
여기에 제시된 다른 솔루션에 여전히 문제가 있습니다. 마지막으로 이것은 나를 위해 가장 잘 작동했습니다.
<div class="parent">
<img class="child" src="image.png"/>
</div>
CSS3 :
.child {
display: block;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%); /* Safari and Chrome */
-moz-transform: translate(-50%, -50%); /* Firefox */
-ms-transform: translate(-50%, -50%); /* IE 9 */
-o-transform: translate(-50%, -50%); /* Opera */
// I suppose you may like those too:
// max-width: 80%;
// max-height: 80%;
}
이것은 더 간단한 접근법 일 것입니다.
#over > img{
display: block;
margin:0 auto;
}
Daaawx의 대답은 효과가 있지만 인라인 CSS를 제거하면 더 깨끗하다고 생각합니다.
body {
margin: 0;
}
#over img {
margin-left: auto;
margin-right: auto;
display: block;
}
div.example {
position: absolute;
width: 100%;
height: 100%;
}
<div class="example" id="over">
<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>
우수한 div 를 text-align : center로 설정 한 상태에서 img 가 display : inline-block으로 설정 하면 작업도 수행됩니다.
편집 : display : inline-block >>> 을 사용하는 사람들에게 두 가지 div와 같은 것을 잊지 마십시오.
<div>Div1 content</div>NOSPACEHERE<div>Div2 content</div>
그들 사이에 공백이 없습니다 (여기에서 볼 수 있듯이).
이들 (인라인 블록 고유) 간격을 피하는 것이 기본입니다. 이 차이는 내가 지금 쓰고있는 두 단어 사이에서 볼 수 있습니다! :-) 그래서 .. 이것이 여러분의 도움이되기를 바랍니다.
단순한. 2018. FlexBox. 브라우저 지원을 확인하려면-
최소 솔루션을 사용할 수 있습니까?
div#over {
display: flex;
justify-content: center;
align-items: center;
}
가장 광범위한 브라우저 지원을 받으려면
div#over {
display: -webkit-flex;
display: -ms-flex;
display: flex;
justify-content: center;
-ms-align-items: center;
align-items: center;
}
많은 접근 방식을 시도했지만 컨테이너 div 내부의 여러 인라인 요소에 대해서만 작동합니다. 다음은 div의 모든 것을 중간에 정렬하는 코드입니다.
.divContainer
{
vertical-align: middle;
text-align: center; <!-- If you want horizontal center alignment -->
}
.divContainer > *
{
vertical-align: middle;
}
<div class="divContainer">
<span>Middle Text</span>
<img src="test.png"/>
</div>
샘플 코드는 다음과 같습니다. https://jsfiddle.net/yogendrasinh/2vq0c68m/
글쎄, 우리는 2016 년입니다 ... flexbox를 사용하지 않는 이유는 무엇입니까? 또한 반응이 좋습니다. 즐겨.
#over{
display:flex;
align-items:center;
justify-content:center;
}
<div id="over">
<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>
HTML :
<div id="over">
<img src="img.png">
</div>
CSS :
#over {
text-align: center;
}
#over img {
vertical-align: middle;
}
가로 중앙에
#over img {
display: block;
margin: 0 auto;
clear:both;
}
다른 방법 :
#over img {
display: inline-block;
text-align: center;
}
수직 중심의 경우 :
#over img {
vertical-align: middle;
}
이것은 나를 위해 속임수를했다.
<div class="CenterImage">
<asp:Image ID="BrandImage" runat="server" />
</div>
'참고 :이 경우'BrandImage '와 관련된 CSS 클래스가 없습니다.
CSS :
.CenterImage {
position:absolute;
width:100%;
height:100%
}
.CenterImage img {
margin: 0 auto;
display: block;
}
이것은 이미지를 중앙 정렬해야하고 이미지에 부모 div가 전체 화면을 덮고있을 때 효과적이었습니다. 즉 높이 : 100 % 및 너비 : 100 %
#img{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
}
포지셔닝을 사용하십시오. 다음은 나를 위해 일했습니다 ...
이미지의 중심을 확대 한 상태에서 (이미지가 div를 채 웁니다) :
div{
display:block;
overflow:hidden;
width: 70px;
height: 70px;
position: relative;
}
div img{
min-width: 70px;
min-height: 70px;
max-width: 250%;
max-height: 250%;
top: -50%;
left: -50%;
bottom: -50%;
right: -50%;
position: absolute;
}
이미지 가운데로 확대하지 않고 (이미지가 div를 채우지 않음 ) :
div{
display:block;
overflow:hidden;
width: 100px;
height: 100px;
position: relative;
}
div img{
width: 70px;
height: 70px;
top: 50%;
left: 50%;
bottom: 50%;
right: 50%;
position: absolute;
}
이에 대한 답변은 이미지를 세로로 정렬하지 않습니다. 최신 브라우저에 적합한 솔루션은 flexbox입니다. 플렉스 컨테이너는 품목을 수평 및 수직으로 정렬하도록 구성 할 수 있습니다.
<div id="over" style="position:absolute; width:100%; height:100%; display: flex; align-items: center; justify-content: center;">
<img src="img.png">
</div>
이 솔루션을 살펴볼 수 있습니다.
<style type="text/css">
.wraptocenter {
display: table-cell;
text-align: center;
vertical-align: middle;
width: ...;
height: ...;
}
.wraptocenter * {
vertical-align: middle;
}
.wraptocenter {
display: block;
}
.wraptocenter span {
display: inline-block;
height: 100%;
width: 1px;
}
</style>
<!--[if lt IE 8]-->
<style>
.wraptocenter span {
display: inline-block;
height: 100%;
}
</style>
<!--[endif]-->
<div class="wraptocenter"><span></span><img src="..." alt="..."></div>
간단한 방법은 div와 이미지에 대해 별도의 스타일을 만든 다음 독립적으로 배치하는 것입니다. 이미지 위치를 50 %로 설정하려면 다음과 같은 코드가 표시됩니다.
#over{
position:absolute;
width:100%;
height:100%;
}
#img{
position:absolute;
left:50%;
right:50%;
}
<div id="over">
<img src="img.png" id="img">
</div>
이 작동합니다.
테스트 중요 : 코드 스 니펫을 실행하려면 왼쪽 버튼 RUN code snippet을 클릭 한 다음 오른쪽 링크를 클릭 하십시오.
#fader{
position:fixed;z-index: 10;
top:0;right:0;bottom:0;left:0;
opacity: 0.8;background: black;
width:100%;height:100%;
text-align: center;
}
.faders{display:inline-block;height:100%;vertical-align:middle;}
.faderi{display:inline-block;vertical-align:middle;}
<div id="fader">
<span class="faders"></span>
<img class="faderi" src="https://i.stack.imgur.com/qHF2K.png" />
</div>