2016-08-08 20 views
2

Ich versuche, ein Bild in einem Div vertikal auszurichten, aber alles, was ich versuche, wird nicht funktionieren.Wie wird das Bild vertikal ausgerichtet?

Ich versuche, es in einer material design lite Zelle zu zentrieren.

Hier ist mein Code:

CodePen

HTML:

<div class="mdl-grid"> 
    <div class="mdl-cell mdl-cell--4-col"> 
    a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br> 
    </div> 
    <div class="mdl-cell mdl-cell--4-col"> 
    <div class="imgholder"> 
    <img src="http://i.stack.imgur.com/kq8EX.png" id="stackimg"> 
    </div> 
    </div> 
</div> 

CSS:

.mdl-cell{ 
    border: 1px solid black; 
} 
.imgholder{ 
    width: 100%; 
    height:100%; 
} 
#stackimg{ 
    width:50%; 
    float: right; 
    position: reletive; 
    top:50%; 
    vertical-align: middle; 
} 

Vertical-align: middle macht nichts. Weder ist top: 50%. Das Bild hat ein Eltern-Div mit einer definierten Höhe, also bin ich mir nicht sicher, warum es nicht funktioniert.

Jede Hilfe wird geschätzt.

+1

es wird nicht Ihr Problem beheben, aber das macht Ihre Rechtschreibung - relativ, nicht – kinakuta

+0

reletive Ein großer Führer für in CSS Zentrierung sollte fix alle Ihre Probleme: https://css-tricks.com/centring-css-complete-guide/ –

+0

Position muss fest oder absolut sein, um 'top' zu verwenden. –

Antwort

3

Sie können vertikal Ihre Bildmitte durch translateY() verwenden. Geben Sie Ihrem Container eine position: relative; und weisen Sie dann Ihrem Bild position: absolute; zusammen mit transform: translateY(-50%); zu.

CSS

.imgholder{ 
    width: 100%; 
    height: 100%; 
    position: relative; 
} 

#stackimg{ 
    width: 50%; 
    position: absolute; 
    right: 0; 
    top: 50%; 
    transform: translateY(-50%); 
} 

CodePen

+0

Oder wenn Sie möchten, dass das Bild "Position: relative" behalten Sie eine 'links: 50%' und die 'transform' –

0

Vertikal ausrichten Ihre div Bild enthält, anstatt das img-Tag selbst oder Check this:

> `http://jsfiddle.net/kizu/4RPFa/4570/` 
+0

Funktioniert immer noch nicht – quantumbutterfly

+0

http://stackoverflow.com/questions/ 7273338/how-to-vertikal-align-an-image-inside-div – Bharthan

+0

Ich habe schon gesehen und versucht, dass. Das funktioniert auch nicht. Ich vermute, die CSS für MDL ist irgendwie störend – quantumbutterfly

Verwandte Themen