Menu

Padding CSS: shorthand, lados, porcentagens e exemplos

Padding é o espaço dentro de um elemento, entre o conteúdo e a borda. Veja o shorthand padding com 1 a 4 valores, as propriedades de cada lado, o padding lógico, as porcentagens e como o padding muda o tamanho de um elemento.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

O que é padding

Padding é o espaço dentro de um elemento, entre o conteúdo e a borda. Ele recebe o fundo do elemento, então é a propriedade que dá respiro a um botão, um card ou um badge.

A área azul é o conteúdo. A faixa verde em volta são os 24px de padding em cada lado, e a borda fica por fora disso.

O shorthand padding: 1, 2, 3 ou 4 valores

padding define os quatro lados em uma declaração. A quantidade de valores decide qual lado recebe qual, em sentido horário a partir do topo:

DeclaraçãoTopoDireitaBaseEsquerda
padding: 10px;10101010
padding: 10px 20px;10201020
padding: 10px 20px 30px;10203020
padding: 10px 20px 30px 40px;10203040

Dois valores significam "vertical, horizontal". Três valores significam "topo, horizontal, base". Quatro dão a volta no relógio: topo, direita, base, esquerda (em inglês, o macete é TRouBLe: top, right, bottom, left).

Digite qualquer shorthand abaixo. A caixa é redesenhada e o navegador informa o que cada lado recebeu:

Experimente 8px, 8px 24px, 0 0 40px e 1em 5%. Um valor inválido, como -10px, é ignorado e a caixa mantém o último padding válido.

Um lado de cada vez

Cada lado tem a própria propriedade, o que fica mais claro que um shorthand de quatro valores quando você só quer mudar um:

.card {
  padding-top: 16px;
  padding-right: 24px;
  padding-bottom: 16px;
  padding-left: 24px;
}

Um shorthand seguido de um lado é um padrão comum: defina tudo e depois ajuste um lado.

.card {
  padding: 16px;
  padding-bottom: 32px; /* only the bottom changes */
}

Aqui a ordem importa: um shorthand padding escrito depois de padding-bottom voltaria a base para 16px.

Padding lógico: padding-inline e padding-block

padding-left e padding-right são físicos: ficam do mesmo lado em qualquer idioma. As propriedades lógicas seguem a direção da escrita, que é o que você quer em um site que também é exibido da direita para a esquerda:

Propriedade lógicaEm português (esquerda para direita)Em árabe (direita para esquerda)
padding-inline-startesquerdadireita
padding-inline-enddireitaesquerda
padding-inlineesquerda e direitadireita e esquerda
padding-blocktopo e basetopo e base

O padding aumenta a caixa (a menos que seja border-box)

Por padrão, width é a largura só do conteúdo, e o padding é somado por cima. Uma caixa width: 200px com padding: 20px tem 240px de largura:

box-sizing: border-box mantém a caixa em 200px e tira o padding de dentro. A página do box model mostra a conta completa.

Padding em porcentagem

Um padding em porcentagem é medido em relação à largura do pai, nos quatro lados, incluindo topo e base:

É daí que veio o velho truque "padding-top: 56.25%" para caixas de vídeo 16:9. Hoje aspect-ratio: 16 / 9 faz o mesmo trabalho diretamente.

O padding é o jeito certo de aumentar um link ou botão, porque ele faz parte do elemento e, portanto, do que você pode clicar ou tocar. A margin acrescentaria espaço, mas não um alvo maior.

.btn {
  display: inline-block; /* lets vertical padding take space in the line */
  padding: 10px 18px;    /* a comfortable touch target */
}

Valores que o padding aceita

ValorExemploObservações
Comprimento12px, 1rem, 0.5emem acompanha o tamanho da fonte do elemento
Porcentagem5%Da largura do bloco que o contém
0padding: 0Não precisa de unidade
Negativo-10pxInválido, ignorado
autoautoInválido para padding (funciona para margin)

Erros comuns

  • Ordem errada no shorthand de quatro valores. É topo, direita, base, esquerda, em sentido horário.
  • Uma caixa que cresce quando você põe padding. Defina box-sizing: border-box.
  • Usar padding para separar dois elementos. Espaço entre elementos é margin; padding é espaço dentro de um. Veja margin vs padding.
  • Padding vertical em um link inline que invade outras linhas. Transforme-o em inline-block.
  • Padding negativo ou padding: auto. Os dois são inválidos e ignorados sem aviso.

Perguntas frequentes

O que é padding no CSS?

Padding é o espaço entre o conteúdo de um elemento e a borda dele. Ele faz parte do elemento, então mostra a cor de fundo do elemento e aumenta a área clicável de um link ou botão.

Em que ordem ficam os valores do shorthand padding?

Em sentido horário a partir do topo: padding: top right bottom left;. Com três valores é topo, esquerda e direita, base; com dois valores, topo e base e depois esquerda e direita; com um valor, os quatro lados.

O padding aumenta o tamanho do elemento?

Com o padrão box-sizing: content-box, sim: o padding é somado a width e height. Com box-sizing: border-box, o padding sai de dentro da largura, então o elemento mantém o tamanho que você definiu.

Um padding em porcentagem é relativo a quê?

À largura do bloco que o contém, nos quatro lados. padding-top: 50% é metade da largura do pai, não da altura, e é por isso que os antigos truques de proporção usavam padding vertical.

O padding pode ser negativo?

Não. Um valor de padding negativo é inválido e a declaração é ignorada. Para puxar o conteúdo para fora, use uma margin negativa.

Como colocar padding no HTML?

Com CSS, em uma folha de estilo ou em um atributo style: <div style="padding: 16px;">. O HTML não tem atributo de padding para elementos em geral; o antigo atributo cellpadding das tabelas está obsoleto e foi substituído por padding em td e th.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR