I'm trying to stagger a div class in a stair type fashion, so it looks like this
1
2
3
4
Edit: I want to change the top margin so each placement of the .process div is lower than the one before it. I have them floated so they'll sit side by side, but I'd also like each div to sit lower than the last.
I attempted to use nth-child
which, of course, just added the top margin to all of the elements because it started counting at the first element and simply added the set margin to all of the divs. I know you can create a counter using CSS, but can you increment a margin using CSS?
CSS
.process {
float: left;
width: 20%;
}
.process:nth-child(1n+2) {
margin-top: 1em;
}
HTML
<!-- #dprocess -->
<div id="dprocess">
<!-- .process -->
<div class="process">
<p>Name Goes Here</p>
<!-- /.process -->
</div>
<!-- .process -->
<div class="process">
<p>Name Goes Here</p>
<!-- /.process -->
</div>
<!-- .process -->
<div class="process">
<p>Name Goes Here</p>
<!-- /.process -->
</div>
<!-- .process -->
<div class="process">
<p>Name Goes Here</p>
<!-- /.process -->
</div>
<!-- .process -->
<div class="process">
<p>Name Goes Here</p>
<!-- /.process -->
</div>
<!-- /#dprocess -->
</div>
The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
margin:0 auto; 0 is for top-bottom and auto for left-right. It means that left and right margin will take auto margin according to the width of the element and the width of the container. Generally if you want to put any element at center position then margin:auto works perfectly.
The auto Value You can set the margin property to auto to horizontally center the element within its container. The element will then take up the specified width, and the remaining space will be split equally between the left and right margins.
"Margin is that space between the edge of an element's box and the edge of the complete box, such as the margin of a letter. 'top' displaces the element's margin edge from the containing blocks box, such as that same piece of paper inside a cardboard box, but it is not up against the edge of the container."
Have you considered changing the markup?
<div>
1
<div>
2
<div>
3
<div>
4
<div>
5
</div>
</div>
</div>
</div>
</div>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
div {
margin-left: 10px;
}
</style>
That markup also seems more suited for the job (given the hirarchial structure you want).
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