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

You should not be centering things in HTML, that's the stylesheet's job.


Sure, what's the CSS to make a div be centered vertically?


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


I have no objection to having a style sheet that defines what the <center> tag does. But it should at least be possible to have a center tag and a vertical-center tag. AFAICT it is not possible. At the very least you need both a center-capable container and centered elements.


I don't think it should:

You're always centering children with respect to something, and you specify the fact that you want children centered on the thing you're centering them in, rather than the elements themselves. This makes more sense, in my opinion, and as said in the sibling comment, it's two simple rules.

I do a tonne of flexbox and grid in my day-to-day, and these complaints are quite simply out of date. Almost any layout in CSS these days can be done easily and intuitively.


By out of date do you mean around 1 year old? I'm sorry but your statement will likely be out of date soon.




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

Search: