Ich habe folgendes Div
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
Wie kann man das Bild so ausrichten, dass es sich in der Mitte und im Zentrum des div befindet?
Ich habe folgendes Div
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
Wie kann man das Bild so ausrichten, dass es sich in der Mitte und im Zentrum des div befindet?
Wenn wir nicht display: block
die Voreinstellung ist display: inline
laut w3schools.com/cssref/pr_class_display.asp . Warum brauchen wir den Block? Ich arbeitete für mich, aber nicht sicher, warum Block wird die img zentrieren und inline wird nicht.
Weil inline sich nicht in der Zeile bewegt, ist es in der Tat in der Zeile. so margin auto ist unwirksam.
Sehr kurze und einfache Lösung, die jedoch nur bei einer festen, nicht prozentualen Breite und Höhe zu funktionieren scheint. Es funktioniert mit Floats aber so +1 für das. - jsfiddle.net/2s2nY/2
Es wird nicht funktionieren, wenn die Breite des Bildes größer als die Breite des Divs ist.
Dies kann auch mit Hilfe des Flexbox-Layouts geschehen:
STATISCHE GRÖSSE
.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>
DYNAMISCHE GRÖSSE
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>
Ich fand das Beispiel in diesem Artikel , in der die Verwendung des Layouts sehr gut erklärt wird.
Mir scheint, dass Sie auch wollten, dass das Bild vertikal im Container zentriert wird. (Ich habe keine Antwort gesehen, die das vorsah)
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;
}
Anmerkung: Diese Lösung eignet sich für die Ausrichtung eines beliebigen Elements innerhalb eines Elements. für IE7, wenn Sie die .Centered
Klasse auf Blockelementen, müssen Sie einen weiteren Trick anwenden, um die inline-block
arbeiten. (das, weil IE6/IE7 nicht gut mit inline-block auf Block-Elemente spielen)
Anstatt zusätzliche span
können Sie das Pseudo-Element :before
: jsfiddle.net/xaliber/cj6zhtp0
@deathlock es ist bekannt. aber ich habe auf alte IE-Browser abgezielt (die keine Pseudoelemente unterstützen).
@avrahamcool Ich verstehe, das war mir nicht klar. Wie wäre es dann mit dem Umschlag der bedingten <!--[if lt IE 8]>
um den span
?
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
14 Stimmen
Duplikat gefragt vor 2 Minuten: CSS: Bild Mitte
1 Stimmen
Ähnliches Thema hier: stackoverflow.com/questions/18516317/
0 Stimmen
Erwägen Sie, eine Antwort als richtig auszuwählen.
0 Stimmen
Mögliches Duplikat von Wie positioniere ich ein Bild vertikal und horizontal in der Mitte?