Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

display: flex; align-items: center;


Doesn't work unless you have an extra container div.


Sure, because "vertically centered" means relative to what?


I want the contents of my div to be centered inside my div.

Just like <center> works, but vertically. You don't need <foo><bar>content</bar></foo> for horizontal centering. I consider it a layering violation to have to do that nesting.


Maybe we are misunderstanding each other, but while you don't need an "extra" container, you do need a container with some known height to vertically center the content in: http://jsfiddle.net/c20gq4pz/


This is true, but every 'modern' DOM that I've seen has loads of extra container divs precisely to allow post hoc layout.


To be fair though, this has been a problem for quite some time and mostly stems from many web devs not understanding block and inline correctly and thus applying unneeded divs everywhere even there are enough hooks for their styles already.


Or you can use the body: https://codepen.io/jodi/pen/oMvLaN




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: