I usually just try justify-content, justify-items, align-content, and align-items. Then when it gets centered I remove the rest.
I’m not paid to remember, I’m paid to know it’s possible.
Same! I usually open the dev console and just flip through all the options until I find the one that does it
For real. When I have a front-end story to do, I basically just slam on the keyboard until it looks close to how UX wants it.
I don’t do web dev, I write math software that makes very rich people richer. But I often hear of this centering and layout crap
Why doesn’t html just have hcenter and vcenter tags or something? Why is centering so hard?
HTML has moved on from non-semantic tags a long time ago, and centering is easy with modern CSS.
Since when does HTML not have a simple centering tag?
Edit: Since HTML5 apparently. Wow wtf?! I haven't actually used HTML since I was in high school. That's wild.
I wasn't expecting this to work, and yet it does: https://css-tricks.com/the-peculiar-magic-of-flexbox-and-auto-margins/
When Sam says, “that item will automatically extend its specified margin to occupy the extra space in the flex container,” the way my empty filing cabinet brain interprets that is like so:
Setting the margin property on a flex child will push the child away from that direction. Set
margin-left
toauto
, the child will push right. Setmargin-top
toauto
and the child will push to the bottom.[...]
Why is this useful to know? Well, I think there are a few moments where
justify-self
oralign-self
might not get you exactly what you want in a layout where using auto margins gives you that extra flexibility to fine-tune things.
Why doesn’t html just have hcenter and vcenter tags or something?
HTML is a markup language, its purpose is to structure documents, while CSS can be seen as an additional layer that allows you to style and alter the layout of HTML documents. Because of this philosophy, it wouldn't make any sense to have such tags.
It actually has <center> for centering things horizontally. Yes, it's literally <center> content </center>
. It's been around since the early 90s, too. Dunno about a vertical center</center>
center
is mostly for centering text and is being deprecated in favor of text-align
and margin-*: auto
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/center