Správně odsazené dlaždice v CSS
Pojďme vytvořit skutečně fungující dlaždice s mezery pomocí marginů bez problémů. Předpokládejme, že máme inicialně takové dlaždice bez mezer:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
<div class="child">5</div>
<div class="child">6</div>
<div class="child">7</div>
<div class="child">8</div>
<div class="child">9</div>
</div>
.parent {
display: flex;
flex-wrap: wrap;
width: 300px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
border: 1px solid green;
}
:
Vytvořme horizontální mezery mezi
prvky pomocí margin.
Nastavme proto všem potomním prvkům
margin-right na hodnotu 10px,
a každému třetímu potomkovi tento margin vynulujeme.
Použijeme k tomu pseudotřídu nth-child,
a nastavme ji tak, aby vybírala
každý třetí prvek.
Zvětšeme také šířku rodiče na 320px,
abychom udělali místo pro mezery, a podívejme se,
co jsme dostali:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
<div class="child">5</div>
<div class="child">6</div>
<div class="child">7</div>
<div class="child">8</div>
<div class="child">9</div>
</div>
.parent {
display: flex;
flex-wrap: wrap;
width: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
margin-right: 10px;
border: 1px solid green;
}
.child:nth-child(3n) {
margin-right: 0;
}
:
Takže vše funguje. Nyní odstraníme poslední prvek, aby v poslední řadě bylo méně prvků a přesvědčíme se, že tím nevzniknou problémy s touto poslední řadou:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
<div class="child">5</div>
<div class="child">6</div>
<div class="child">7</div>
<div class="child">8</div>
</div>
.parent {
display: flex;
flex-wrap: wrap;
width: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
margin-right: 10px;
border: 1px solid green;
}
.child:nth-child(3n) {
margin-right: 0;
}
:
Vytvořte dlaždice po dvou prvcích v řadě s
mezerou mezi prvky 20px.