W3docs

CSS Border

Como usar border-width e border-color em CSS, valores de border-style como dotted, dashed, solid, double, groove, ridge, inset e outset. Veja exemplos.

CSS Border

Uma borda é uma linha desenhada ao redor das arestas da caixa de um elemento, entre seu padding e sua margem. As bordas são uma das formas mais comuns de separar visualmente conteúdos, destacar uma caixa ou criar elementos de interface como cards, botões e campos de entrada.

Toda borda tem três ingredientes, e você quase sempre define os três:

  • width — a espessura da linha (por exemplo, 2px, thin, thick).
  • style — a aparência da linha (por exemplo, solid, dashed, dotted). Esta é a única propriedade que deve estar presente — sem um border-style, o navegador não exibe nenhuma borda, mesmo que você defina uma largura e uma cor.
  • color — a cor da linha (por exemplo, red, #1c87c9, rgb(0,0,0)).

Você pode defini-los individualmente com border-width, border-style e border-color, ou todos de uma vez com a propriedade abreviada border. O restante deste capítulo percorre cada opção.

Exemplo da propriedade border:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <p style="border:3px dotted #1c87c9"> Example with a blue dotted border.</p>
    <p style="border:3px dashed #ffff00"> Example with a yellow dashed border.</p>
    <p style="border:3px solid #8ebf42"> Example with a green solid border.</p>
  </body>
</html>

Resultado

Três parágrafos com bordas CSS pontilhada azul, tracejada amarela e sólida verde

Border Width

A propriedade border-width define a largura de uma borda.

A largura pode ser especificada em uma unidade de comprimento como pixels (px), em ou rem. Também pode ser definida com uma das três palavras-chave predefinidas: thin, medium ou thick. O tamanho exato dessas palavras-chave fica a critério do navegador, mas thin < medium < thick.

Você não pode usar border-width sozinho — não tem efeito visível sem um border-style, pois o estilo padrão é none. Sempre defina o estilo (ou use a propriedade abreviada border) primeiro.

Você também pode fornecer até quatro valores para border-width a fim de dimensionar cada lado independentemente, exatamente como border-style: um valor define todos os lados, dois definem superior/inferior e esquerdo/direito, quatro definem superior, direito, inferior e esquerdo em sentido horário.

Exemplo da propriedade border-width:

<!DOCTYPE html>
<html>
  <head>
    <style>
      p.border-width-1 {
        border-style: solid;
        border-width: 6px;
      }
      p.border-width-2 {
        border-style: dotted;
        border-width: 1px;
      }
        p.border-width-3 {
        border-style: dotted;
        border-width: medium;
      }
      p.border-width-4 {
        border-style: double;
        border-width: 8px;
      }
      p.border-width-5 {
        border-style: double;
        border-width: thick;
      }
      p.border-width-6 {
        border-style: solid;
        border-width: 3px 12px 6px 18px;
      }
    </style>
  </head>
  <body>
    <h2>The border-width Property</h2>
    <p class="border-width-1">Example with border-width.</p>
    <p class="border-width-2">Example with border-width.</p>
    <p class="border-width-3">Example with border-width.</p>
    <p class="border-width-4">Example with border-width.</p>
    <p class="border-width-5">Example with border-width.</p>
    <p class="border-width-6">Example with border-width.</p>
  </body>
</html>

Border Color

A propriedade border-color é usada para definir a cor de uma borda. A cor pode ser definida por:

  • nome - especifica um nome de cor, como "red"
  • RGB - especifica um valor RGB, como "rgb(255,0,0)"
  • Hex - especifica um valor hexadecimal, como "#ff0000"

Você não pode usar a propriedade "border-color" sozinha. Ela não funcionará. Use "border-style" para definir as bordas primeiro.

Normalmente, escrevemos essas três propriedades juntas em uma única linha.

Exemplo da propriedade border-color:

<!DOCTYPE html>
<html>
  <head>
    <style>
      p.color-one {
        border-style: solid;
        border-color: blue;
      }
      p.color-two {
        border-style: dotted;
        border-color: yellow;
      } 
      p.color-three {
        border-style: solid;
        border-color: DarkBlue orange green red;
      } 
    </style>
  </head>
  <body>
    <h2>The border-color Property</h2>
    <p class="color-one">Example with blue solid border-color.</p>
    <p class="color-two">Example with yellow dotted border-color.</p>
    <p class="color-three">Example with multicolor border-color.</p>
  </body>
</html>

Observe o último parágrafo: quando border-color recebe quatro valores, eles se aplicam aos lados superior, direito, inferior e esquerdo nessa ordem horária.

Border Style

A propriedade CSS border-style define o estilo de todos os quatro lados das bordas de um elemento. As bordas são posicionadas sobre o fundo do elemento. Ela pode ter de um a quatro valores, portanto cada lado pode ter o seu próprio valor. O valor padrão de border-style é none.

Border-style tem os seguintes valores:

  • dotted
  • dashed
  • solid
  • double
  • groove
  • ridge
  • inset
  • outset

Veja o que cada valor significa:

  • dotted — uma série de pontos redondos.
  • dashed — uma série de traços curtos.
  • solid — uma linha reta simples. Este é de longe o estilo mais comum.
  • double — duas linhas sólidas paralelas. A largura combinada é igual ao valor de border-width.
  • groove — parece que a borda está esculpida na página (efeito 3D).
  • ridge — o oposto de groove; a borda parece se projetar para fora.
  • inset — faz toda a caixa parecer pressionada para dentro da página.
  • outset — faz a caixa parecer elevada em relação à página.

Os efeitos groove, ridge, inset e outset dependem da cor da borda, por isso parecem sutis (ou invisíveis) em uma borda fina ou sobre um fundo semelhante. Use um border-width de pelo menos 3px para vê-los com clareza.

CSS Border para lados individuais

O CSS fornece propriedades que especificam cada borda (direita, esquerda, inferior e superior).

A propriedade border-style pode ter 4 valores, por exemplo, border-style: dotted solid double dashed; onde a borda superior é pontilhada, a borda inferior é dupla, a borda direita é sólida e a borda esquerda é tracejada.

A propriedade border-style pode ter 3 valores, por exemplo, border-style: dotted solid double; onde a borda superior é pontilhada, a borda inferior é dupla, e as bordas direita e esquerda são sólidas.

A propriedade border-style pode ter 2 valores, por exemplo, border-style: dotted solid; onde as bordas direita e esquerda são sólidas, e as bordas superior e inferior são pontilhadas. E, claro, essa propriedade pode ter apenas 1 valor, por exemplo, border-style: solid; onde todos os lados são sólidos.

Exemplo das propriedades border para lados individuais:

<!DOCTYPE html>
<html>
  <head>
    <style>
      p {
        border-top-style: double;
        border-right-style: solid;
        border-bottom-style: dotted;
        border-left-style: groove;
      }
    </style>
  </head>
  <body>
    <p>Example with border individual sides.</p>
  </body>
</html>

CSS border como propriedade abreviada

A propriedade CSS border é uma propriedade abreviada para as seguintes propriedades de borda individuais:

  • A propriedade CSS border-width, que define a largura de todos os quatro lados da borda de um elemento.
  • A propriedade CSS border-style, que define o estilo de todos os quatro lados das bordas de um elemento.
  • A propriedade CSS border-color, que define a cor de todos os quatro lados da borda de um elemento.

Exemplo da propriedade abreviada border:

<!DOCTYPE html>
<html>
  <head>
    <style>
      p.border-all {
        border: 3px solid red;
      }
      p.border-left {
        border-left: 4px solid blue;
        background-color: #dcdcdc;
      }
      p.border-top {
        border-top: 6px solid green;
        background-color: #dcdcdc;
      }
    </style>
  </head>
  <body>
    <h2>The border Shorthand Property</h2>
    <p class="border-all">Example with a shorthand property for border-width, border-style, and border-color.</p>
    <p class="border-left">Example with a shorthand property for border-left-width, border-left-style, and border-left-color.</p>
    <p class="border-top">Example with a shorthand property for border-top-width, border-top-style, and border-top-color.</p>
  </body>
</html>

Bordas arredondadas

Usando a propriedade CSS border-radius, você pode adicionar bordas arredondadas a um elemento.

Exemplo da propriedade border-radius:

<!DOCTYPE html>
<html>
  <head>
    <style>
      p.normal {
        border: 3px solid blue;
      }
      p.round-one {
        border: 3px solid blue;
        border-radius: 6px;
      }
      p.round-two {
        border: 3px solid blue;
        border-radius: 9px;
      }
      p.round-three {
        border: 3px solid blue;
        border-radius: 15px;
      }
    </style>
  </head>
  <body>
    <h2>The border-radius Property</h2>
    <p class="normal">Example with normal border</p>
    <p class="round-one">Example with round border</p>
    <p class="round-two">Example with rounder border</p>
    <p class="round-three">Example with roundest border</p>
  </body>
</html>

A diferença entre bordas e outlines

Uma borda e um outline ambos desenham uma linha ao redor de um elemento, por isso é fácil confundi-los. As principais diferenças são:

  • Uma borda faz parte do modelo de caixa. Ela fica entre o padding e a margem e ocupa espaço, portanto adicionar uma borda pode deslocar o layout dos elementos ao redor.
  • Um outline é desenhado fora da borda e não ocupa espaço, portanto nunca altera o tamanho ou a posição do elemento ou de seus vizinhos.
  • Uma borda pode ter estilo, largura e cor diferentes em cada lado. Um outline é igual nos quatro lados.
  • Um outline pode ser deslocado do elemento com outline-offset; bordas não podem ser deslocadas.

Como os outlines não afetam o layout, eles são comumente usados para o estado :focus de botões e links — o anel de foco pode aparecer sem deslocar o restante da página.

Capítulos relacionados

Prática

Prática
Quais das seguintes são propriedades que podem ser usadas para estilizar bordas em CSS?
Quais das seguintes são propriedades que podem ser usadas para estilizar bordas em CSS?
Was this page helpful?