W3docs

Propriedade CSS outline-style

A propriedade CSS outline-style define o estilo do contorno de um elemento. Veja os valores e exemplos.

A propriedade CSS outline-style define o estilo de linha do contorno de um elemento — por exemplo, uma linha solid, dashed ou dotted. Um outline é uma linha desenhada logo fora da borda do elemento, ao redor dos quatro lados ao mesmo tempo.

Esta página explica como cada estilo de contorno se parece, como outline-style difere de border-style, e mostra exemplos executáveis para cada valor.

Por que usar um outline?

Os outlines são usados com mais frequência para tornar o foco visível. Quando um usuário navega com Tab até um link, botão ou campo de formulário pelo teclado, o navegador desenha um outline para que ele possa ver onde está. Remover esse outline sem uma substituição quebra a acessibilidade do teclado, portanto prefira reestilizá-lo em vez de excluí-lo.

O outline difere da border em dois aspectos importantes:

  • Não ocupa espaço. O outline é desenhado fora da borda do elemento e não afeta o layout, portanto adicionar ou alterar um outline nunca desloca os elementos ao redor. A width e a height do elemento não incluem o outline.
  • Não permite controle individual por lado ou canto. Ao contrário das bordas, não é possível definir um outline diferente em apenas um lado, e um outline básico segue o box, não o seu border-radius.

Para que qualquer outline seja visível, outline-style deve ser definido com um valor diferente de none — esta propriedade é o que "ativa o outline". Combine-o com outline-color e outline-width, ou use o atalho outline para definir os três de uma vez.

A propriedade outline-style aceita os seguintes valores:

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

Os valores groove, ridge, inset e outset criam um efeito 3D sombreando o outline com base em outline-color. O efeito é mais visível com uma largura maior e uma cor de tom médio — é quase invisível em preto ou branco puro.

Valor Inicialnone
Aplica-se aTodos os elementos.
HerdadoNão.
AnimávelNão.
VersãoCSS2
Sintaxe DOMobject.style.outlineStyle = "dotted"

Sintaxe

Sintaxe CSS de outline-style

outline-style: none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset | initial | inherit;

Exemplo da propriedade outline-style:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .p1 {
        outline-style: solid;
      }
      .p2 {
        outline-style: dashed;
      }
      .p3 {
        outline-style: dotted;
      }
      .p4 {
        outline-style: double;
      }
      .p5 {
        outline-style: none;/*hidden*/
      }
      .p6 {
        outline-style: groove;
        outline-color: #ccc;
      }
      .p7 {
        outline-style: ridge;
        outline-color: #ccc;
      }
      .p8 {
        outline-style: inset;
        outline-color: #ccc;
      }
      .p9 {
        outline-style: outset;
        outline-color: #ccc;
      }
    </style>
  </head>
  <body>
    <h2>Outline property example</h2>
    <p class="p1">This is a paragraph with outline set to solid.</p>
    <p class="p2">This is a paragraph with outline set to dashed.</p>
    <p class="p3">This is a paragraph with outline set to dotted.</p>
    <p class="p4">This is a paragraph with outline set to double.</p>
    <p class="p5">This is a paragraph with outline set to none.</p>
    <p class="p6">This is a paragraph with outline set to groove.</p>
    <p class="p7">This is a paragraph with outline set to ridge.</p>
    <p class="p8">This is a paragraph with outline set to inset.</p>
    <p class="p9">This is a paragraph with outline set to outset.</p>
  </body>
</html>

Resultado

CSS outline-style another

Exemplo da propriedade outline-style com todos os valores:

CSS outline-style another code example

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p.dotted {
        outline: 4px dotted gray;
      }
      p.dashed {
        outline: 0.2em dashed rgb(142, 191, 66);
      }
      p.solid {
        outline: 4px solid #ccc;
      }
      p.double {
        outline: 4px double #000;
      }
      p.groove {
        outline: 4px groove #666;
      }
      p.ridge {
        outline: thick ridge #1c87c9;
      }
      p.inset {
        outline: medium inset #1c87c9;
      }
      p.outset {
        outline: 4px outset #1c87c9;
      }
    </style>
  </head>
  <body>
    <h2>Outline property example</h2>
    <p class="dotted">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="dashed">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="solid">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="double">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="groove">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="ridge">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="inset">Lorem Ipsum is simply dummy text of the printing...</p>
    <p class="outset">Lorem Ipsum is simply dummy text of the printing...</p>
  </body>
</html>

Este segundo exemplo usa o atalho outline para definir o estilo, a largura e a cor juntos — por exemplo outline: 4px dotted gray.

Exemplo da propriedade outline-style com o valor "groove":

Example of the outline-style property with the groove value

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        color: #7f7fa7;
        text-align: center;
        outline-width: 8px;
        outline-style: groove;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <h1>Outline property example</h1>
    <p>This is a paragraph with outline set to groove.</p>
  </body>
</html>

Exemplo da propriedade outline-style com o valor "ridge":

Example of the outline-style property with the ridge value

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        color: #69afad;
        text-align: center;
        outline-width: 8px;
        outline-style: ridge;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <h1>Outline property example</h1>
    <p>This is a paragraph with outline set to ridge.</p>
  </body>
</html>

Exemplo da propriedade outline-style com o valor "inset":

Example of the outline-style property with the inset value

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        color: #69afad;
        text-align: center;
        outline-width: 8px;
        outline-style: inset;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <h1>Outline property example</h1>
    <p>This is a paragraph with outline set to inset.</p>
  </body>
</html>

Exemplo da propriedade outline-style com o valor "outset":

Example of the outline-style property with the outset value:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        color: #69afad;
        text-align: center;
        outline-width: 8px;
        outline-style: outset;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <h1>Outline property example</h1>
    <p>This is a paragraph with outline set to outset.</p>
  </body>
</html>

Exemplo da propriedade outline-style com o valor "dotted":

Example of the outline-style property with the dotted value:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        color: #69afad;
        text-align: center;
        outline-width: 4px;
        outline-style: dotted;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <h1>Outline property example</h1>
    <p>This is a paragraph with outline set to dotted.</p>
  </body>
</html>

Exemplo da propriedade outline-style com o valor "dashed":

Example of the outline-style property with the dashed value:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        color: #69afad;
        text-align: center;
        outline-width: 4px;
        outline-style: dashed;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <h1>Outline property example</h1>
    <p>This is a paragraph with outline set to dashed.</p>
  </body>
</html>

Valores

ValorDescriçãoExperimente
noneNão exibe nenhum outline. Este é o valor padrão desta propriedade.Play it »
hiddenIgual a none para outlines (o valor existe por consistência com border-style).Play it »
dottedO outline é especificado como uma série de pontos.Play it »
dashedO outline é especificado como uma série de traços.Play it »
solidO outline é especificado como linhas sólidas.Play it »
doubleO outline é especificado como linhas sólidas duplas.Play it »
grooveEspecifica um outline com ranhura 3D.Play it »
ridgeEspecifica um outline com relevo 3D.Play it »
insetEspecifica um outline embutido.Play it »
outsetEspecifica um outline em relevo.Play it »
initialDefine a propriedade com seu valor padrão.Play it »
inheritHerda a propriedade do seu elemento pai.

Dicas e erros comuns

  • outline-style sozinho pode ser invisível. Sem largura ou cor definidas, a largura padrão do outline é medium e a cor é currentColor, então normalmente ele aparece — mas se você definir outline-width: 0 ele não será exibido. Use o atalho outline para ser explícito.
  • Não remova outlines de foco. outline: none remove o anel de foco do teclado. Se o design exigir sua remoção, substitua-o por um outline personalizado ou por um estilo de foco com box-shadow, para que os usuários de teclado ainda possam ver o foco.
  • Use outline-offset para dar espaço. Como o outline fica junto à borda por padrão, a propriedade outline-offset o empurra para fora (ou para dentro com um valor negativo) sem afetar o layout.
  • Outline vs. border. Use um outline quando precisar de um indicador que não altere o tamanho ou a posição do box; use uma border quando a linha fizer parte do layout do elemento.

Propriedades relacionadas

  • outline — atalho para outline-width, outline-style e outline-color.
  • outline-color — define a cor do outline.
  • outline-width — define a espessura do outline.
  • border — a contraparte do outline que ocupa espaço no layout.

Prática

Prática
Quais dos seguintes são valores válidos para a propriedade 'outline-style' em CSS?
Quais dos seguintes são valores válidos para a propriedade 'outline-style' em CSS?
Was this page helpful?