W3docs

Propriedade CSS border-image-source

A propriedade CSS border-image-source permite especificar uma imagem como borda de um elemento. Veja exemplos e teste você mesmo.

A propriedade CSS border-image-source define a imagem usada para desenhar a borda de um elemento, em vez do border-style comum. Ela responde à pergunta "qual imagem deve ser recortada e colocada ao redor do elemento?", enquanto as propriedades complementares decidem como essa imagem é cortada e organizada.

Esta página aborda os valores que border-image-source aceita, como ela funciona em conjunto com as outras propriedades border-image-*, os problemas que fazem uma imagem de borda desaparecer silenciosamente e exemplos editáveis.

border-image-source é uma das propriedades CSS3 e quase sempre é definida junto com border-image-slice por meio do atalho border-image.

Quando usar

Use uma imagem de borda quando um border simples não consegue expressar o visual desejado — uma moldura decorativa, uma faixa, uma borda desenhada à mão ou um contorno com gradiente. Como a fonte pode ser qualquer imagem, incluindo um gradiente CSS, você obtém efeitos que border-color sozinho não consegue produzir.

Como border-image-source se relaciona com as outras propriedades

border-image-source apenas nomeia a imagem. Quatro propriedades irmãs controlam o restante, e uma imagem de borda não é renderizada até que border-image-slice também seja definido:

Cuidados importantes

  • Defina um border primeiro. Uma imagem de borda preenche a área definida pela borda do elemento, portanto você ainda precisa de um border-width (geralmente border: 10px solid transparent;). Sem uma largura de borda, não há nada a ser pintado.
  • border-image-slice é obrigatório. Definir apenas a fonte não exibe nada; o navegador precisa dos valores de slice para saber onde ficam os cantos.
  • none ou uma falha de carregamento usa border-style como fallback. Se a imagem não puder ser exibida, os estilos de borda regulares serão usados — forneça um border-style visível ao elemento como medida de segurança.
Valor Inicialnone
Aplica-se aTodos os elementos, exceto elementos internos de tabela quando border-collapse é "collapse". Também se aplica a ::first-letter.
HerdadoNão.
AnimávelNão.
VersãoCSS3
Sintaxe DOMobject.style.borderImageSource = "url()";

Sintaxe

Valores de CSS border-image-source

border-image-source: none | image | initial | inherit;

Exemplo da propriedade border-image-source:

Exemplo de código CSS border-image-source

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .border {
        border: 10px solid transparent;
        padding: 15px;
        border-image-source: url("/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg");
        border-image-slice: 15;
      }
    </style>
  </head>
  <body>
    <h2>Border-image-source property example</h2>
    <p class="border">Hello World!</p>
    <p>Here is the original image:</p>
    <img src="/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg" alt="Border image" style="width:50%" />
  </body>
</html>

Resultado

![Descrição do CSS border-image-source](/uploads/media/default/0001/04/aad8e5faee47f41e2ac519e2aa0214b5c1c9cb8f.png "CSS border-image-source example result" =420x)

Exemplo com um gradiente CSS como fonte

A fonte não precisa ser um arquivo — qualquer imagem CSS funciona, incluindo gradientes. Isto desenha uma moldura colorida sem nenhum arquivo de imagem:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .gradient-border {
        border: 12px solid transparent;
        padding: 15px;
        border-image-source: linear-gradient(45deg, #6610f2, #20c997);
        border-image-slice: 1;
      }
    </style>
  </head>
  <body>
    <p class="gradient-border">A border drawn from a CSS gradient.</p>
  </body>
</html>

Aqui, border-image-slice: 1 recorta um único pixel, o que é suficiente para um gradiente suave, pois o gradiente continua ao longo de cada aresta.

Valores

ValorDescrição
noneNenhuma imagem é usada; o elemento usa seu border-style como fallback. Este é o valor padrão.
imageQualquer <image> CSS: um url() para um arquivo ou um gradiente como linear-gradient(...) / radial-gradient(...).
initialDefine a propriedade com seu valor padrão (none).
inheritHerda o valor do elemento pai.

Propriedades relacionadas

Prática

Prática
Qual é o uso correto da propriedade border-image-source em CSS?
Qual é o uso correto da propriedade border-image-source em CSS?
Was this page helpful?