Máscaras CSS

Usando máscara CSS, você pode criar uma camada de máscara e colocá-la no elemento para ocultar parte ou toda parte do elemento.

propriedade mask-image

CSS mask-image a propriedade especifica a imagem da camada de máscara.

A imagem de camada de máscara pode ser imagem PNG, imagem SVG,Gradiente CSS ou Elemento <mask> do SVG.

Suporte do navegador

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

com -webkit- Os números prefixados representam a primeira versão que suporta esse prefixo.

Chrome Edge Firefox Safari Opera
120 120 53 15.4 15 -webkit-

Usar imagem como camada de máscara

Para usar imagens PNG ou SVG como camada de máscara, use url() Passar a imagem da camada de máscara.

A imagem de máscara precisa ter uma área transparente ou semi-transparente. Preto representa completamente transparente.

Esta é a imagem de máscara que usaremos (imagem PNG):

W3

Esta é a imagem da Cinque Terre italiana:

Wuhan

Agora, vamos aplicar a imagem de máscara (a imagem PNG acima) como camada de máscara na imagem da Cinque Terre italiana:

Wuhan

Exemplo

A seguir está o código-fonte:

.mask1 {
  -webkit-mask-image: url(w3.png);
  mask-image: url(w3logo.png);
  mask-repeat: no-repeat;
}

Experimente você mesmo

exemplo de explicação

mask-image o atributo especifica a imagem usada como camada de máscara do elemento.

mask-repeat o atributo especifica se a imagem de máscara deve ser repetida ou como deve ser repetida. O valor no-repeat indica que a imagem de máscara não será repetida (a imagem de máscara será exibida apenas uma vez).

outro exemplo

se omitirmos mask-repeat o atributo, a imagem de máscara será exibida repetidamente ao longo da imagem de Wuyue inteira:

Wuhan

Exemplo

A seguir está o código-fonte:

.mask1 {
  -webkit-mask-image: url(w3logo.png);
  mask-image: url(w3logo.png);
}

Experimente você mesmo

usar gradiente como camada de máscara

A CSS de gradiente linear e radial também pode ser usada como imagem de máscara.

exemplo de gradiente linear

Aqui, usamos o gradiente linear como camada de máscara da imagem. Este gradiente linear vai do topo (preto) ao fundo (transparente):

Wuhan

Exemplo

usar gradiente linear como camada de máscara:

.mask1 {
  -webkit-mask-image: linear-gradient(black, transparent);
  mask-image: linear-gradient(black, transparent);
}

Experimente você mesmo

Aqui, usamos o gradiente linear e a máscara de texto como camada de máscara da imagem:

Wuhan é um importante local de origem da cultura Chu, desde a primavera e outono até as dinastias Zhou e战国, sempre foi um importante centro militar e comercial no sul da China, tornando-se a província de Huguang na dinastia Yuan e sendo elogiado como 'o primeiro lugar mais próspero no Chu' e um dos 'quatro aglomerados do mundo' durante as dinastias Ming e Qing. No final da dinastia Qing, a abertura de Hankou e o Movimento de Modernização daqing iniciaram o processo de modernização de Wuhan, tornando-o um importante centro econômico na China moderna. Wuhan é o local do primeiro levante da Revolução Xinhai e várias vezes se tornou o centro político, militar e cultural da China na história moderna.

Wuhan é um importante local de origem da cultura Chu, desde a primavera e outono até as dinastias Zhou e战国, sempre foi um importante centro militar e comercial no sul da China, tornando-se a província de Huguang na dinastia Yuan e sendo elogiado como 'o primeiro lugar mais próspero no Chu' e um dos 'quatro aglomerados do mundo' durante as dinastias Ming e Qing. No final da dinastia Qing, a abertura de Hankou e o Movimento de Modernização daqing iniciaram o processo de modernização de Wuhan, tornando-o um importante centro econômico na China moderna. Wuhan é o local do primeiro levante da Revolução Xinhai e várias vezes se tornou o centro político, militar e cultural da China na história moderna.

Wuhan é um importante local de origem da cultura Chu, desde a primavera e outono até as dinastias Zhou e战国, sempre foi um importante centro militar e comercial no sul da China, tornando-se a província de Huguang na dinastia Yuan e sendo elogiado como 'o primeiro lugar mais próspero no Chu' e um dos 'quatro aglomerados do mundo' durante as dinastias Ming e Qing. No final da dinastia Qing, a abertura de Hankou e o Movimento de Modernização daqing iniciaram o processo de modernização de Wuhan, tornando-o um importante centro econômico na China moderna. Wuhan é o local do primeiro levante da Revolução Xinhai e várias vezes se tornou o centro político, militar e cultural da China na história moderna.

Exemplo

usar gradiente linear e máscara de texto como camada de máscara:

.mask1 {
  max-width: 600px;
  height: 350px;
  overflow-y: scroll;
  background: url(wuhan.jpg) no-repeat;
  -webkit-mask-image: linear-gradient(black, transparent);
  mask-image: linear-gradient (black, transparent);
}

Experimente você mesmo

exemplo de gradiente radial

Aqui, usamos o gradiente radial (formado por círculo) como camada de máscara da imagem:

Wuhan

Exemplo

usar gradiente radial como camada de máscara (circular):

.mask2 {
  -webkit-mask-image: radial-gradient(circle, black 50%, rgba(0, 0, 0, 0.5) 50%);
  mask-image: radial-gradient(circle, black 50%, rgba(0, 0, 0, 0.5) 50%);
}

Experimente você mesmo

Aqui, usamos uma gradiente radial (forma elíptica) como camada de máscara para a imagem:

Wuhan

Exemplo

Usar outra gradiente radial como máscara (ellipse):

.mask3 {
  -webkit-mask-image: radial-gradient(ellipse, black 50%, rgba(0, 0, 0, 0.5) 50%);
  mask-image: radial-gradient(ellipse, black 50%, rgba(0, 0, 0, 0.5) 50%);
}

Experimente você mesmo

Uso de SVG como máscara

O elemento <mask> do SVG pode ser usado dentro de gráficos SVG para criar efeitos de máscara.

Aqui, usamos o elemento <mask> do SVG para criar diferentes camadas de máscara para a imagem:

Exemplo

Desculpe, seu navegador não suporta SVG em linha.

Um manto SVG (forma triangular):

<svg width="600" height="400">
  <mask id="svgmask1">
    <polygon fill="#ffffff" points="200 0, 400 400, 0 400"></polygon>
  </mask>
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="wuhan.jpg" mask="url(#svgmask1)"></image>
</svg>

Experimente você mesmo

Exemplo

Desculpe, seu navegador não suporta SVG em linha.

Um manto SVG (forma estrela):

<svg width="600" height="400">
  <mask id="svgmask2">
    <polygon fill="#ffffff" points="100,10 40,198 190,78 10,78 160,198"></polygon>
  </mask>
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="wuhan.jpg" mask="url(#svgmask2)"></image>
</svg>

Experimente você mesmo

Exemplo

Desculpe, seu navegador não suporta SVG em linha.

Um manto SVG (forma circular):

<svg width="600" height="400">
  <mask id="svgmask3">
    <circle fill="#ffffff" cx="75" cy="75" r="75"></circle>
    <circle fill="#ffffff" cx="80" cy="260" r="75"></circle>
    <circle fill="#ffffff" cx="270" cy="160" r="75"></circle>
  </mask>
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="wuhan.jpg" mask="url(#svgmask3)"></image>
</svg>

Experimente você mesmo