Omlayout av block med media queries i CSS
Låt oss lära oss att utföra omlayout av block på olika skärmbredder. Som exempel ska vi implementera följande beteende:
Låt oss börja med att skriva HTML-koden för våra block:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
</div>
Nu ska vi skriva stilar för föräldern till våra block:
.parent {
display: flex;
width: 90%;
margin: 50px auto;
border: 1px solid red;
}
Nu ska vi skriva stilar för blocken själva, utan att ange de egenskaper som kommer att ändras av media queries:
.child {
box-sizing: border-box;
padding: 20px;
border: 1px solid green;
}
På stor skärmbredd låt oss låta mellanrummet mellan blocken beräknas automatiskt:
@media (min-width: 500px) {
.parent {
justify-content: space-between;
}
}
Låt oss sätta bredden på våra block till lite mindre
än 50% för att lämna utrymme
för marginal:
@media (min-width: 500px) {
.child {
width: 49.5%;
}
}
På liten skärmbredd låt oss placera våra block i en kolumn:
@media (max-width: 500px) {
.parent {
flex-direction: column;
}
}
Låt oss ge dem en bottenmarginal:
@media (max-width: 500px) {
.child {
margin-bottom: 10px;
}
}
Låt oss samla allt och få följande 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%;
}
}