Адаптивна плочка со отстапувања во CSS
Ајде сега да направиме плочка со отстапувања. Еве пример за тоа што треба да добиеме:
За почеток, да ги направиме стиловите за родителот на блоковите:
.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 (min-width: 1000px) {
.child {
width: calc(100% / 4 - 1.5% * 3 / 4);
}
.child:not(:nth-child(4n)) {
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: 400px) and (max-width: 700px) {
.child {
width: calc(100% / 2 - 1.5% * 1 / 2);
}
.child:not(:nth-child(2n)) {
margin-right: 1.5%;
}
}
Еден блок во ред:
@media (max-width: 400px) {
.child {
width: 100%;
}
}
Ајде да го собереме целиот код заедно:
.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%;
}
}
Направете плочка која при намалување на екранот
прво ќе има осум елементи во ред,
потоа четири елементи во ред, па два елементи
во ред. Нека растојанието помеѓу елементите биде
0.75%.
Модифицирајте ја претходната задача така што
растојанието помеѓу елементите ќе биде фиксна
вредност од 20px.