Met div + div werkt het perfect zoals ik het wil, maar stel dat ik 100 divs ga hebben moet ik dan 100 keren div + div gaan gebruiken. Ik weet nooit op voorhand hoeveel divs er gaan zijn.
Met counter werkt het niet omdat het resultaat word terug geven in een string en niet in een variable.
Een andere oplossing is met style="--number: x;" waarbij x een getal is. Maar dit is een oplossing die niet het meest evident is.
Iemand enige suggesties?
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Stack Cards</title>
<style type="text/css">
html,
body
{
display: block;
height: 100%;
width: 100%;
margin: 0 0 0 0;
max-height: 100%;
max-width: 100%;
min-height: 100%;
min-width: 100%;
overflow: hidden;
padding: 0 0 0 0;
}
div.stack
{
background: none #393;
counter-reset: div; /* Reset counter */
display: block;
float: left;
height: 100%;
margin: 0 0 0 0;
max-width: 20%;
padding: 0 0 0 0;
width: 20%;
}
div.card
{
background: none #fff;
border: solid 1px #000;
border-radius: 0.3em;
box-shadow: 0.2em 0.2em 0.5em #ccc;
color: #000;
display: block;
height: 300px;
line-height: 1em;
margin: 0 0 0 0;
padding: 0.2em 0.2em 0.2em 0.2em;
position: absolute;
width: 200px;
}
div.card::before
{
content: counter(div);
}
div.card + div.card { margin-top: 2em; } /* Card 1 */
div.card + div.card + div.card { margin-top: 4em; } /* Card 2 */
div.card + div.card + div.card + div.card { margin-top: 6em; } /* Card 3 */
div.card + div.card + div.card + div.card + div.card { margin-top: 8em; } /* Card 4 */
div.card + div.card + div.card + div.card + div.card + div.card { margin-top: 10em; } /* Card 5 */
div.card + div.card + div.card + div.card + div.card + div.card + div.card { margin-top: 12em; } /* Card 6 */
div.card + div.card + div.card + div.card + div.card + div.card + div.card + div.card { margin-top: 14em; } /* Card 7 */
div.card + div.card
{
counter-increment: div; /* Count cards in stack */
/* margin-top: calc((var(--number) - 1) * 2em); /* Formula calculate --number * 2em top-margin */
/* margin-top: calc(var(div) * 2em); /* Formula calculate divs * 2em top-margin */
}
</style>
</head>
<body>
<div class="stack">
<div class="card" style="--number: 1;"></div>
<div class="card" style="--number: 2;"></div>
<div class="card" style="--number: 3;"></div>
<div class="card" style="--number: 4;"></div>
<div class="card" style="--number: 5;"></div>
<div class="card" style="--number: 6;"></div>
<div class="card" style="--number: 7;"></div>
</div>
<div class="stack">
<div class="card" style="--number: div;"></div>
<div class="card" style="--number: div;"></div>
<div class="card" style="--number: div;"></div>
</div>
<div class="stack">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
<div class="stack">
<div class="card"></div>
</div>
<div class="stack">
<div class="card">1</div>
<div class="card">2</div>
<div class="card">3</div>
<div class="card">4</div>
<div class="card">5</div>
<div class="card">6</div>
<div class="card">7</div>
</div>
</body>
</html>