Menu

Border CSS: borda, estilo, cor e border-radius

A propriedade border desenha uma linha em volta do padding de um elemento. Veja o shorthand border, todos os estilos de borda, cores e lados individuais, cantos arredondados com border-radius e a diferença entre borda e outline.

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

O shorthand border

border desenha uma linha em volta de um elemento, entre o padding e a margin. O shorthand recebe três partes em qualquer ordem: uma largura, um estilo e uma cor.

PartePropriedade longaValoresPadrão
Larguraborder-width1px, 0.2em, thin, medium, thickmedium
Estiloborder-stylesolid, dashed, dotted, double e outrosnone
Corborder-colorQualquer corcurrentColor (a cor do texto)

O estilo é a parte que não dá para pular. O padrão dele é none, então border: 2px #2563eb; não desenha nada. Se você deixar a cor de fora, a borda pega a cor do texto do elemento.

Estilos de borda

double precisa de pelo menos 3px para mostrar duas linhas. groove, ridge, inset e outset sombreiam a cor para parecer 3D e variam um pouco entre navegadores. hidden parece none; os dois só diferem dentro de tabelas com bordas colapsadas, assunto da página de borda em tabela HTML.

Um lado de cada vez

Cada lado tem o próprio shorthand (border-top, border-right, border-bottom, border-left), e cada parte tem propriedades longas por lado, como border-top-color. As versões lógicas, border-inline-start e border-block-end, seguem a direção do texto:

border-color, border-width e border-style aceitam de um a quatro valores, na mesma ordem horária do padding: topo, direita, base, esquerda.

Cantos arredondados com border-radius

border-radius arredonda os cantos da borda e do fundo, então funciona até em elementos sem borda nenhuma.

ValorResultado
border-radius: 8pxTodos os cantos arredondados em 8px
border-radius: 50%Um círculo em um elemento quadrado, uma elipse em um retângulo
border-radius: 999pxUma pílula: os lados curtos viram semicírculos completos
border-radius: 8px 0Superior esquerdo e inferior direito com 8px, os outros dois retos
border-top-left-radius: 12pxSó um canto
border-radius: 50% / 25%Cantos elípticos: raio horizontal / raio vertical

Um filho com fundo pode vazar pelos cantos de um pai arredondado. overflow: hidden no pai o recorta seguindo a curva.

Border vs outline

O outline parece uma borda, mas é desenhado fora dela e não ocupa espaço, então acrescentar um nunca move nada. É por isso que os navegadores usam outlines para os anéis de foco.

BorderOutline
Ocupa espaçoSim, faz parte do tamanho da caixaNão
Por ladoSim (border-top, ...)Não, em volta toda
Segue o border-radiusSimSim, nos navegadores atuais
Afastamento da caixaNãoSim, outline-offset
Uso típicoDesignIndicadores de foco, depuração

Erros comuns

  • Sem estilo de borda. border: 1px #111827; e border-color: red; não desenham nada. Inclua solid (ou outro estilo).
  • Uma borda que faz o layout pular no hover. Reserve o espaço com uma borda transparente, ou use outline ou box-shadow.
  • Esquecer a borda na largura. Um elemento width: 100% com borda transborda o contêiner com content-box. Use box-sizing: border-box.
  • border-radius com um filho vazando pelos cantos. Acrescente overflow: hidden ao pai arredondado.
  • Remover o outline de foco com outline: none. Quem usa teclado precisa dele; mude o estilo do outline em vez de apagá-lo.

Perguntas frequentes

Como colocar borda no CSS?

Use o shorthand com largura, estilo e cor: border: 2px solid #2563eb;. O estilo é a parte mais importante: sem ele, o border-style é none e nenhuma borda é desenhada.

Por que minha borda CSS não aparece?

Quase sempre porque nenhum estilo de borda foi definido. border: 2px #2563eb; ou só border-color: red; não desenham nada, já que o border-style padrão é none. Acrescente solid, dashed ou outro estilo.

Como fazer cantos arredondados no CSS?

Use border-radius: border-radius: 8px; arredonda os quatro cantos. border-radius: 50%; em um quadrado faz um círculo, e um valor grande como 999px faz o formato de pílula. Ele arredonda o fundo também, mesmo sem borda.

Como colocar borda só em um lado?

Use a propriedade do lado: border-bottom: 2px solid #e5e7eb;, ou border-inline-start para o lado onde o texto começa, que também funciona em idiomas da direita para a esquerda.

Qual a diferença entre border e outline?

A borda faz parte da caixa: ocupa espaço e muda o tamanho do elemento. O outline é desenhado fora da borda sem ocupar espaço, não pode ser definido por lado e é o que os navegadores usam para os anéis de foco. Os dois seguem o border-radius nos navegadores atuais.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR