As media queries foram introduzidas no CSS3 e recorrem à regra @media
para incluir um bloco de CSS caso a condição seja verdadeira.
Por exemplo, vamos mudar a cor de fundo do body se o tamanho da janela do browser for igual ou inferior a 600px:
@media only screen and (max-width: 600px) {
body {
background-color: lightblue;
}
}
Adicionar Breakpoints
Imaginemos o seguinte CSS:
/* For desktop: */
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}
Estamos a atribuir diferentes tamanhos às colunas. No entanto, num ecrã de um telemóvel, esta configuração iria ser ilegível para o utilizador. Para corrigir, adicionamos um breakpoint e alteramos a medida das colunas quando o tamanho do browser atingir esta dimensão ou inferior:
@media only screen and (max-width: 768px) {
/* For mobile phones: */
[class*="col-"] {
width: 100%;
}
}
Com este breakpoint estamos a dizer ao browser para colocar todas as colunas com 100% de comprimento.
Mobile First
O termo Mobile First, que também faz parta da analise de performance no Google Pagespeed e no GTMetrix, significa que o desenvolvimento dos websites deve ter em atenção os dispositivos móveis em primeiro lugar. Por isso, as linhas de código em cima devem ser escritas da seguinte forma:
/* For mobile phones: */
[class*="col-"] {
width: 100%;
}
@media only screen and (min-width: 768px) {
/* For desktop: */
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}
}
Assim estamos a informar o browser como queremos ver as colunas num dispositivo móvel e só depois ajustamos o layout caso o website esteja a ser visto num computador desktop ou portátil.