div{
display: table-cell;
height: 100px;
background-color: red;
vertical-align: middle;
/*position: absolute;*/
}
In the above demo If you remove the comment from position: absolute;
the vertical-align won't work.
I also found this question but here is added a parent div. But in my case, I need without touching up markup. Any idea?