A clip-path
propriedade em CSS permite que você especifique uma região específica de um elemento a ser exibido, com o resto sendo escondido (ou “cortado”).
.clip-me ( /* Example: clip away the element from the top, right, bottom, and left edges */ clip-path: inset(10px 20px 30px 40px); /* or "none" */ /* Example: clip element into a Heptagon */ clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 0% 60%, 10% 20%); /* Deprecated version */ position: absolute; /* absolute or fixed positioning required */ clip: rect(110px, 160px, 170px, 60px); /* or "auto" */ /* values descript a top/left point and bottom/right point */ )
Costumava haver uma clip
propriedade, mas observe que ela está obsoleta.
O caso de uso mais comum seria uma imagem, mas não se limita a isso. Você poderia facilmente aplicar clip-path
a uma tag de parágrafo e apenas uma parte do texto.
I'll be clipped.
Esses quatro valores em inset()
(no CSS acima) representam o ponto superior / esquerdo e o ponto inferior / direito , que formam o retângulo visível. Tudo fora desse retângulo está oculto.
Outros valores possíveis:
.clip-me ( /* referencing path from an inline SVG */ clip-path: url(#c1); /* referencing path from external SVG */ clip-path: url(path.svg#c1); /* polygon */ clip-path: polygon(5% 5%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%); /* circle */ clip-path: circle(30px at 35px 35px); /* ellipse */ clip-path: ellipse(65px 30px at 125px 40px); /* inset-rectangle() may replace inset() ? */ /* rectangle() coming in SVG 2 */ /* rounded corners… not sure if a thing anymore */ clip-path: inset(10% 10% 10% 10% round 20%, 20%); )
Exemplo de caminho de clipe SVG:
É muito estranho clip-path
não suportar a path()
função desde o início, pois path()
já é uma coisa para propriedades como motion-path
. No entanto, o Firefox agora oferece suporte para ele e estamos aguardando o restante dos navegadores. Veja Uma implementação inicial de clip-path: path ();
Faça o seu
Até que possamos usar de forma confiável path()
, os clipes mais úteis para formas personalizadas sofisticadas são polygon()
. Este é um editor realmente legal para os de Mads Stoumann (que também funciona para círculos e elipses):
Mais Informações
- Recorte e mascaramento em CSS
- clip-path no WPD
- clip-path no MDN
- Clippy: criador de clip-path de Bennett Feely
- Corte e mascaramento em MDN
- A (obsoleta) propriedade CSS Clip (Impressive Webs)
- Especificação de máscara de CSS
- Mascaramento CSS por Dirk Schulze
- Clipping in CSS e SVG - A propriedade e o elemento do caminho do clipe de Sara Soueidan
- Clip-path com marcação de canetas no CodePen
- Demonstrações e suporte para navegador de demonstração Pen de Yoksel
- Máscaras SVG por Jakob Jenkov
- Pesquisa de Alan Greenblatt sobre os níveis de suporte do navegador para recursos de recorte e mascaramento
Suporte para navegador
Os dados de suporte deste navegador são do Caniuse, que tem mais detalhes. Um número indica que o navegador oferece suporte ao recurso nessa versão e superior.
Área de Trabalho
cromada | Raposa de fogo | IE | Beira | Safári |
---|---|---|---|---|
91 | 54 | Não | 88 | TP * |
Celular / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 14,0-14,4 * |