Przekształcanie bloków za pomocą zapytań medialnych w CSS
Nauczmy się wykonywać przekształcenia bloków na różnych szerokościach ekranu. Dla przykładu zaimplementujmy takie zachowanie:
Na początek napiszmy kod HTML naszych bloków:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
</div>
Teraz napiszmy style dla rodzica naszych bloków:
.parent {
display: flex;
width: 90%;
margin: 50px auto;
border: 1px solid red;
}
Teraz napiszmy style dla samych bloków, nie wskazując tych właściwości, które będą zmieniać się zapytaniami medialnymi:
.child {
box-sizing: border-box;
padding: 20px;
border: 1px solid green;
}
Na dużej szerokości ekranu niech odstęp między blokami oblicza się automatycznie:
@media (min-width: 500px) {
.parent {
justify-content: space-between;
}
}
Ustawmy szerokość naszym blokom nieco mniej niż
50%, aby zostawić miejsce
na odstęp:
@media (min-width: 500px) {
.child {
width: 49.5%;
}
}
Na małej szerokości ekranu ustawmy nasze bloki w kolumnę:
@media (max-width: 500px) {
.parent {
flex-direction: column;
}
}
Nadajmy im dolny margines:
@media (max-width: 500px) {
.child {
margin-bottom: 10px;
}
}
Zbierzmy wszystko razem i otrzymamy następujący kod:
.parent {
display: flex;
width: 90%;
margin: 50px auto;
}
.child {
box-sizing: border-box;
padding: 20px;
border: 1px solid green;
}
@media (max-width: 500px) {
.parent {
flex-direction: column;
}
.child {
margin-bottom: 10px;
}
}
@media (min-width: 500px) {
.parent {
justify-content: space-between;
}
.child {
width: 49.5%;
}
}