3

I am attempting to vertically align an image in a div, but everything I try won't work.

I am attempting to center it in a material design lite cell.

Here is my 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="https://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 isn't doing anything. Neither is top: 50%. The image does have a parent div with a defined height, so I'm not sure why it's not working.

Any help is appreciated.

Hunter Turner
  • 6,804
  • 11
  • 41
  • 56
quantumbutterfly
  • 1,815
  • 4
  • 23
  • 38

2 Answers2

4

You can vertically center your image by using translateY(). Give your container a position: relative; and then assign position: absolute; along with transform: translateY(-50%); to your image.

CSS

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

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

CodePen

Hunter Turner
  • 6,804
  • 11
  • 41
  • 56
0

Vertical align your div containing image instead of the img tag itself, or check this:

> `http://jsfiddle.net/kizu/4RPFa/4570/`
Bharthan
  • 1,458
  • 2
  • 17
  • 29