Ubin Adaptif dengan Jarak dalam CSS
Sekarang mari kita buat ubin dengan jarak. Berikut contoh yang harus kita hasilkan:
Pertama, mari buat gaya untuk induk blok:
.parent {
display: flex;
flex-wrap: wrap;
width: 95%;
margin: 50px auto;
}
Sekarang atur gaya untuk blok itu sendiri, tanpa mengatur lebarnya, tetapi mengatur margin bawah dalam persentase:
.child {
box-sizing: border-box;
height: 100px;
padding: 20px;
margin-bottom: 1.5%;
border: 1px solid green;
}
Sekarang tulis kode yang akan menempatkan empat blok dalam satu baris, dengan mengatur jarak yang sesuai:
@media (min-width: 1000px) {
.child {
width: calc(100% / 4 - 1.5% * 3 / 4);
}
.child:not(:nth-child(4n)) {
margin-right: 1.5%;
}
}
Dan sekarang mari tempatkan tiga blok dalam satu baris:
@media (min-width: 700px) and (max-width: 1000px) {
.child {
width: calc(100% / 3 - 1.5% * 2 / 3);
}
.child:not(:nth-child(3n)) {
margin-right: 1.5%;
}
}
Dan sekarang mari tempatkan dua blok dalam satu baris:
@media (min-width: 400px) and (max-width: 700px) {
.child {
width: calc(100% / 2 - 1.5% * 1 / 2);
}
.child:not(:nth-child(2n)) {
margin-right: 1.5%;
}
}
Satu blok per baris:
@media (max-width: 400px) {
.child {
width: 100%;
}
}
Mari kita kumpulkan semua kodenya bersama-sama:
.parent {
display: flex;
flex-wrap: wrap;
width: 95%;
margin: 50px auto;
}
.child {
box-sizing: border-box;
height: 100px;
padding: 20px;
margin-bottom: 1.5%;
border: 1px solid green;
}
@media (max-width: 400px) {
.child {
width: 100%;
}
}
@media (min-width: 400px) and (max-width: 700px) {
.child {
width: calc(100% / 2 - 1.5% * 1 / 2);
}
.child:not(:nth-child(2n)) {
margin-right: 1.5%;
}
}
@media (min-width: 700px) and (max-width: 1000px) {
.child {
width: calc(100% / 3 - 1.5% * 2 / 3);
}
.child:not(:nth-child(3n)) {
margin-right: 1.5%;
}
}
@media (min-width: 1000px) {
.child {
width: calc(100% / 4 - 1.5% * 3 / 4);
}
.child:not(:nth-child(4n)) {
margin-right: 1.5%;
}
}
Buat ubin yang saat layar mengecil
pertama-tama akan memiliki delapan elemen per baris,
lalu empat elemen per baris, lalu dua elemen
per baris. Biarkan jarak antar elemen adalah
0.75%.
Modifikasi tugas sebelumnya sehingga
jarak antar elemen adalah nilai tetap
sebesar 20px.