2016-08-08 2 views
2

Я пытаюсь вертикально выровнять изображение в div, но все, что я пытаюсь, не будет работать.Как вертикально выравнивать изображение

Я пытаюсь центрировать его в ячейке material design lite.

Вот мой код:

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 не делает ничего. Также нет top: 50%. У изображения есть родительский div с определенной высотой, поэтому я не уверен, почему он не работает.

Любая помощь приветствуется.

+1

это не решит проблему, но ум правописание - относительная, а не reletive – kinakuta

+0

Большое руководство для центрирования в CSS, должны исправить все ваши проблемы: https://css-tricks.com/centering-css-complete-guide/ –

+0

Позиция должна быть фиксированной или абсолютной для использования 'top'. –

ответ

3

Вы можете вертикально центрировать изображение с помощью translateY(). Дайте вашему контейнеру position: relative;, а затем присвойте position: absolute; вместе с transform: translateY(-50%); на ваше изображение.

CSS

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

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

CodePen

+0

Или если вы хотите, чтобы изображение сохраняло 'position: relative', добавьте' left: 50 %' и 'transform' –

0

Вертикальный выровнять DIV, содержащий изображение вместо самого IMG тег, или проверить это:

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

все еще не работает – quantumbutterfly

+0

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

+0

Я уже видел и пробовал это. Это тоже не работает. Я подозреваю, что css для mdl каким-то образом мешает – quantumbutterfly

Смежные вопросы