CSS'te Doğru Boşluklu Kareler
Margin'lerle gerçekten sorunsuz çalışan boşluklu kareler yapalım. Başlangıçta boşluksuz böyle karelerimiz olduğunu varsayalım:
<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;
}
:
Şimdi elemanlar arasında yatay boşluklar yapalım
margin kullanarak.
Bunun için tüm alt elemanlara
margin-right değerini 10px olarak ayarlayalım,
ve her üçüncü alt elemanın bu margin değerini sıfırlayalım.
Bunun için nth-child sözde sınıfını kullanacağız,
içine her üçüncü elemanı seçecek şekilde
bir parametre vererek.
Ayrıca üst elemanın genişliğini 320px'ye çıkaralım,
boşluklar için yer açmak için ve bakalım
ne elde ediyoruz:
<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;
}
:
Yani, her şey çalışıyor. Şimdi son elemanı kaldıralım, böylece son sırada daha az eleman olsun ve bununla son sırada sorun yaşamadığımızdan emin olalım:
<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;
}
:
Elemanlar arası mesafesi 20px olan
ikişer elemanlı sıralar halinde kareler yapın.