I want a gap of say 30px; between all children of my div. E.g if I have:
<div id="parent"> <img ... /> <p>...</p> <div>.......</div> </div>
I want all of them to have a space of 30px; between them. How can I do this with CSS?
Use the margin property. I put stye=“margin-top: 50px;” in the second div.
The break tag is meant for single line breaks, and not more than one in a row. If you want to add extra whitespace between pieces of text, use CSS padding and margins instead for cleaner code. Or, you can use an HTML <p> tag, as we'll see next.
You can either use the margin or its shorthand properties to add space between the images. For the horizontal spacing, you can use the margin-left and margin-right. While for the vertical spacing you can use the margin-top and margin-bottom properties.
For an unknown amount of children you could use.
#parent > * { margin: 30px 0; }
This will add a top and bottom margin of 30px to all direct children of #parent
.
But img
is not displaying as block default, so you may use:
#parent > * { display: block; margin: 30px 0; }
Vertical margins of block elements will be collapsed. But you will have margins at top and bottom of your parent div. To avoid that use the following code:
#parent > * { display: block; margin-top: 30px; } #parent > *:first-child { margin-top: 0px; }
This will only add top margin and removes that top margin for the first element.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With