Atributo filter do CSS

Definição e uso

A propriedade filter define os efeitos visuais do elemento (geralmente <img>), como desfoque e saturação.

Veja também:

Tutorial CSS:Imagem CSS

Manual de Referência do DOM HTML:Propriedade filter

Exemplo

Converter todas as imagens para preto e branco (100% cinza):

img {
  filter: grayscale(100%);
}

Experimente você mesmo

Dica:Mais exemplos TIY podem ser encontrados na parte inferior da página.

Sintaxe CSS

filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();

Dica:Para usar vários filtros, separe cada filtro com espaço (veja mais exemplos na parte inferior da página).

Detalhes técnicos

Valor padrão: none
Herança: Não
Produção de animação: Suporte. Veja:Atributos relacionados a animação.
Versão: CSS3
Sintaxe JavaScript: object.style.filter="grayscale(100%)"

Filtro de função

Notas:Usa valores percentuais (por exemplo, 75%) para o filtro, também aceita o valor como decimal (por exemplo, 0.75).

Filtro Descrição
none Padrão. Define efeito sem efeito.
blur(px)

Aplica efeito de borrão à imagem. Valores maiores geram mais borrão.

Se for especificado um valor, use 0.

brightness(%)

Ajusta a brilho da imagem.

  • 0% tornará a imagem completamente preta.
  • O valor padrão é 100%, representando a imagem original.
  • Valores acima de 100% fornecerão resultados mais brilhantes.
contrast(%)

Ajusta a contraste da imagem.

  • 0% tornará a imagem completamente preta.
  • O valor padrão é 100%, representando a imagem original.
  • Valores acima de 100% fornecerão resultados mais contrastantes.
drop-shadow(h-shadow v-shadow blur spread color)

Aplica efeito de sombra à imagem.

Valores possíveis:

  • h-shadow - obrigatório. Especifica o valor em pixels da sombra horizontal. Valores negativos colocam a sombra à esquerda da imagem.
  • v-shadow - obrigatório. Especifica o valor em pixels da sombra vertical. Valores negativos colocam a sombra acima da imagem.

blur - opcional. Este é o terceiro valor, a unidade deve ser em pixels. Adiciona efeito de borrão à sombra. Quanto maior o valor, mais borrão será criado (a sombra ficará maior e mais brilhante). Não são permitidos valores negativos. Se não for especificado um valor, será usado 0 (a borda da sombra será muito nítida).

spread - opcional. Este é o quarto valor, a unidade deve ser em pixels. Valores positivos farão a sombra se expandir e aumentar, enquanto valores negativos farão a sombra diminuir. Se não for especificado um valor, será usado 0 (a sombra terá o mesmo tamanho que o elemento).

Notas:Chrome, Safari e Opera, talvez também outros navegadores, não suportam o quarto comprimento; se adicionado, não será exibido.

color - opcional. Adiciona cor à sombra. Se não for especificado, a cor depende do navegador (normalmente preto).

Este exemplo cria uma sombra vermelha, com 8px de largura e altura, e 10px de efeito de borrão:

filter: drop-shadow(8px 8px 10px red);

Dica:Este filtro é semelhante à propriedade box-shadow.

grayscale(%)

Converter a imagem para escala de cinza.

  • 0% (0) é o valor padrão, representando a imagem original.
  • 100% tornará a imagem completamente cinzenta (usada para imagens em preto e branco).

Notas:Não são permitidos valores negativos.

hue-rotate(deg)

Aplicar rotação de tom de cor na imagem. Este valor define o grau do círculo cromático. O valor padrão é 0deg, representando a imagem original.

Notas:O valor máximo é 360deg.

invert(%)

Inverter os amostras na imagem.

  • 0% (0) é o valor padrão, representando a imagem original.
  • 100% tornará a imagem completamente invertida.

Notas:Não são permitidos valores negativos.

opacity(%)

Definir o nível de opacidade da imagem. O opacity-level descreve o nível de transparência, onde:

  • 0% é completamente transparente.
  • 100% (1) é o valor padrão, representando a imagem original (opaca).

Notas:Não são permitidos valores negativos.

Dica:Este filtro é semelhante à propriedade opacity.

saturate(%)

Definir a saturação da imagem.

  • 0% (0) tornará a imagem completamente desaturada.
  • 100% é o valor padrão e representa a imagem original.
  • Valores acima de 100% fornecem resultados super-saturados.

Notas:Não são permitidos valores negativos.

sepia(%)

Converter a imagem para marrom.

  • 0% (0) é o valor padrão, representando a imagem original.
  • 100% tornará a imagem completamente marrom.

Notas:Não são permitidos valores negativos.

url();

A função url() aceita o local do arquivo XML do filtro SVG e pode incluir um âncora para o elemento de filtro específico. Exemplo:

filter: url(svg-url#element-id);

initial Defina essa propriedade para seu valor padrão. Veja initial.
inherit Herda essa propriedade do elemento pai. Veja inherit.

Mais exemplos

Exemplo borrado

Adicionar efeito de borrão à imagem:

img {
  filter: blur(5px);
}

Experimente você mesmo

Exemplo borrado 2

Aplicar imagem de fundo borrada:

img.background {
  filter: blur(35px);
}

Experimente você mesmo

Exemplo de brilho

Ajustar a brilho da imagem:

img {
  filter: brightness(200%);
}

Experimente você mesmo

Exemplo de contraste

Ajustar a contraste da imagem:

img {
  filter: contrast(200%);
}

Experimente você mesmo

Exemplo de sombra

Aplicar efeito de sombra à imagem:

img {
  filter: drop-shadow(8px 8px 10px gray);
}

Experimente você mesmo

Exemplo de escala de cinza

Converta a imagem para escala de cinza:

img {
  filter: grayscale(50%);
}

Experimente você mesmo

Exemplo de rotação de tom de cor

Aplique rotação de tom de cor na imagem:

img {
  filter: hue-rotate(90deg);
}

Experimente você mesmo

Exemplo de inversão

Inverta os exemplos na imagem:

img {
  filter: invert(100%);
}

Experimente você mesmo

Exemplo de nível de opacidade

Defina o nível de opacidade da imagem:

img {
  filter: opacity(30%);
}

Experimente você mesmo

Exemplo de ajuste de saturação

Ajuste a saturação da imagem:

img {
  filter: saturate(800%);
}

Experimente você mesmo

Exemplo de tons sepia

Converta a imagem para tons sepia:

img {
  filter: sepia(100%);
}

Experimente você mesmo

Usar múltiplos filtros

Para usar vários filtros, separe cada filtro com um espaço. Observe que a ordem é importante (por exemplo, usar grayscale() após sepia() produzirá uma imagem completamente em preto e branco):

img {
  filter: contrast(200%) brightness(150%);
}

Experimente você mesmo

Todos os filtros

Demonstre todas as funções de filtro:

.blur {
  filter: blur(4px);
}
.brightness {
  filter: brightness(0.30);
}
.contrast {
  filter: contrast(180%);
}
.grayscale {
  filter: grayscale(100%);
}
.huerotate {
  filter: hue-rotate(180deg);
}
.invert {
  filter: invert(100%);
}
.opacity {
  filter: opacity(50%);
}
.saturate {
  filter: saturate(7);
}
.sepia {
  filter: sepia(100%);
}
.shadow {
  filter: drop-shadow(8px 8px 10px green);
}

Experimente você mesmo

Suporte do navegador

Os números na tabela indicam a primeira versão do navegador que suporta completamente essa propriedade.

Números com -webkit- indicam a primeira versão que usa o prefixo.

Chrome IE / Edge Firefox Safari Opera
53.0
18.0 -webkit-
13.0 35.0 9.1
6.0 -webkit-
40.0
15.0 -webkit-

Notas:Versões mais antigas do Internet Explorer (4.0 até 8.0) suportam o atributo não padrão "filter" descontinuado. Quando a suporte para versões 8.0 e inferiores do IE é necessário, é usado principalmente para opacidade.