I want a gap of say 30px; between all children of my div. E.g if I have:
...
-
The following css will work well
div > *:not(:last-child) {
display: block;
margin-bottom: 30px;
}
>
selects all elements that are direct children of the div
(so you don't get weird inner spacing issues), and adds a bottom margin to all that aren't the last child, using :not(:last-child)
(so you don't get a trailing space).
display: block
makes sure all elements are displayed as blocks (occupying their own lines), which img
s aren't by default.