Reorganização de blocos com media queries em CSS
Vamos aprender a realizar a reorganização de blocos em várias larguras de tela. Como exemplo, vamos implementar o seguinte comportamento:
Para começar, vamos escrever o código HTML dos nossos blocos:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
</div>
Agora vamos escrever os estilos para o pai dos nossos blocos:
.parent {
display: flex;
width: 90%;
margin: 50px auto;
border: 1px solid red;
}
Agora vamos escrever os estilos para os próprios blocos, sem especificar aquelas propriedades que serão alteradas pelas media queries:
.child {
box-sizing: border-box;
padding: 20px;
border: 1px solid green;
}
Em uma largura de tela grande, deixe o espaçamento entre os blocos ser calculado automaticamente:
@media (min-width: 500px) {
.parent {
justify-content: space-between;
}
}
Vamos definir a largura dos nossos blocos um pouco menos
50%, para deixar espaço
para o espaçamento:
@media (min-width: 500px) {
.child {
width: 49.5%;
}
}
Em uma largura de tela pequena, vamos colocar nossos blocos em uma coluna:
@media (max-width: 500px) {
.parent {
flex-direction: column;
}
}
Vamos definir uma margem inferior para eles:
@media (max-width: 500px) {
.child {
margin-bottom: 10px;
}
}
Vamos juntar tudo e obter o seguinte código:
.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%;
}
}