grid

Um guia simples para design responsivo.
Feito por Adam Kaplan. Versão brasileira por webfatorial.

Intro
Mobile First

Por que se importar com responsivo?

Queremos que nossos sites sejam usáveis em todos os dispositivos, respondendo ao comportamento e tamanho e orientação de tela do visitante.

Um mundo fragmentado

Desde 2013 existem milhares de diferentes dispositivos e tamanhos de tela que acessam a internet, tornando impossível projetar layouts para todos. Ao invés disso, precisamos adotar uma abordagem mais fluida ao design.

Mobile First

O termo "mobile first" (móvel primeiro) tem aparecido bastante ultimamente. O que isso realmente significa é começar com os estilos para mobile e ir avançando em estilos otimizados para telas maiores apenas quando necessário. Em outras palavras, seus estilos para dispositivos móveis se tornam o padrão e você não os precisa mais sobrescrever depois. é muito mais simples!


Assumindo um layout flexível, mas simples, por padrão, você pode melhor se resguardar contra navegadores — com viewports pequenas e grandes — que não são totalmente capazes em relação a layout responsivo. Então, quando falamos sobre layout, "mobile first" realmente significa "progressive enhancement" (melhoramento progressivo).

—Ethan Marcotte
Mobile First

Media queries com min-width

Introduza regras específicas ao layout somente quando precisar delas. Use min-width para lidar com complexidade à medida em que a viewport se torna maior. É mais fácil ter todas as media queries próximas ao invés de no final da folha de estilos ou em documento separado.


1

Nem todos os navegadores são iguais

Navegadores irão renderizar seu CSS de maneira diferente. Para evitar isso, é uma boa ideia usar uma alternativa moderna ao reset, como Normalize.css, que irá renderizar seus elementos mais consistentemente entre os navegadores (cross-browser). Lembre-se de incluí-lo antes de sua folha de estilos.


2

Adicione a meta tag Viewport

Coloque na <head> de seu HTML. Isso habilita o uso de media queries para layouts cross-device.


Box Model

CSS Box Model

É importante entender o básico, tal como os elementos são gerados e se comportam no navegador, antes de se aprofundar em web design responsivo. O CSS Box Model consiste em quatro partes diferentes.


content

Conteúdo

O conteúdo do box, onde texto e imagem aparecem.

padding

Padding

Área ao redor do conteúdo.

border

Border

Borda que vai ao redor do padding.

margin

Margin

Área ao redor da borda.

3

Use box-sizing: border-box

Coloque no início de seu arquivo CSS. O * vai afetar todos os elementos na página.


Sua Escolha

O que antes era um bug é agora uma propriedade CSS amplamente usada. Basicamente, isso significa que você pode escolher entre incluir ou não border e padding no cálculo da largura de seu conteúdo.


Without Box Model

Sem box-sizing: border-box

Margem, bordas e padding são desenhados fora da especificação de largura do conteúdo.

With Box Model

Com box-sizing: border-box

Bordas e padding são desenhados dentro da especificação da largura do conteúdo. A margem é desenhada fora.

4

Crie um contêiner

Um contêiner detém todos os elementos e controla a largura máxima da página. Usando um contêiner você faz de projetos de design responsivo mais fáceis!


Container
5

Crie uma coluna

Com mobile first, colunas são nível de bloco (block), por padrão tomando a largura total disponível. Nenhum estilo adicional é necessário!


.column
.column
.column
.column
6

Crie tamanhos de colunas

Em telas grandes, colunas obtêm float: left a fim de "empilhar" (stack) o conteúdo horizontalmente. Colunas agora usam padding para espaçamento, então você não precisa mais se preocupar em remover margens.


.column .half
.column .half
.column .full
.column .two-thirds
.column .third
.column .half
.column .half
.column .third
.column .third
.column .third
.column .fourth
.column .fourth
.column .fourth
.column .fourth
7

Crie linhas

Colunas são envoltas em linhas para evitar que outros elementos fiquem "empilhados" (stacking) próximo a elas, isso também conhecido como "questões de limpeza" (clearing issues). Linhas recebem clear usando o popular clearfix, criado por Nicolas Gallagher.


.column .half
.column .half
.column .half
.column .half

Fluxo Oposto

Adicione a classe .flow-opposite em colunas nas quais você quer o conteúdo apareça primeiro em mobile, mas apareçam à direita em telas maiores.


.column .half .flow-opposite
.column .half

A prática leva à perfeição

Seguindo esses simples passos, você está no caminho para dominar o web design responsivo. Continue a praticar e ajude a tornar a web um lugar melhor e mais usável.


Veja o código