CSS-ով առանց բացվածքների հարմարվողական ցանց
Եկեք ստեղծենք ցանց, որն ունենալու է տարբեր քանակի բլոկներ տողում՝ կախված էկրանի լայնությունից: Ահա մի օրինակ, թե ինչ պետք է ստացվի մեզ մոտ.
Նախ գրենք HTML կոդը.
<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 class="child">10</div>
<div class="child">11</div>
<div class="child">12</div>
</div>
Հիմա եկեք ավելացնենք ոճերը բլոկների ծնողին.
.parent {
display: flex;
flex-wrap: wrap;
width: 95%;
margin: 50px auto;
}
Հիմա սահմանենք բլոկների իրենց ոճերը՝ առանց նրանց լայնություն նշանակելու.
.child {
box-sizing: border-box;
height: 100px;
padding: 20px;
border: 1px solid green;
}
Ակնհայտ է, որ բլոկների լայնությունը պետք է լինի տոկոսներով, որպեսզի էկրանը փոխելիս բլոկները սահուն փոխեն իրենց լայնությունը: Միաժամանակ, էկրանի որոշակի կետերում մենք պետք է փոխենք բլոկների լայնությունը այնպես, որ տողում տեղավորվի բլոկների որոշակի քանակ:
Եկեք գրենք կոդ, որն տողում կդասավորի չորս բլոկ.
@media (min-width: 1000px) {
.child {
width: 25%;
}
}
Հիմա դասավորենք երեք բլոկ տողում.
@media (min-width: 700px) and (max-width: 1000px) {
.child {
width: 33.3333%;
}
}
Հիմա դասավորենք երկու բլոկ տողում.
@media (min-width: 400px) and (max-width: 700px) {
.child {
width: 50%;
}
}
Մեկ բլոկ տողում.
@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;
border: 1px solid green;
}
@media (max-width: 400px) {
.child {
width: 100%;
}
}
@media (min-width: 400px) and (max-width: 700px) {
.child {
width: 50%;
}
}
@media (min-width: 700px) and (max-width: 1000px) {
.child {
width: 33.3333%;
}
}
@media (min-width: 1000px) {
.child {
width: 25%;
}
}
Վերափոխեք իմ կոդն այնպես, որ բլոկների լայնությունը
հաշվարկվի calc ֆունկցիայի միջոցով:
Ստեղծեք ցանց, որը էկրանը նեղացնելիս սկզբում կունենա չորս տարր տողում, հետո երկու տարր տողում, իսկ հետո մեկ տարր տողում:
Ստեղծեք ցանց, որը էկրանը նեղացնելիս սկզբում կունենա վեց տարր տողում, հետո երեք տարր տողում, իսկ հետո մեկ տարր տողում: