Ricerca…


Sintassi

  • Ritaglio
  • clip-path: <clip-source> | [<forma base> || <clip-geometry-box>] | nessuna
  • mascheramento
  • immagine-maschera: [nessuno | <riferimento-maschera>] #
  • mask-mode: [<mask-mode>] #
  • mask-repeat: [<stile di ripetizione] #
  • posizione della maschera: [<posizione>] #
  • mask-clip: [<geometry-box> | no-clip] #
  • origine maschera: [<geometria-box>] #
  • dimensione maschera: [<bg-size>] #
  • mask-composite: [<compositing-operator>] #
  • maschera: [<riferimento maschera> <modalità mascheratura>? || <position> [/ <bg-size>]? || <stile di ripetizione> || <geometry-box> || [<geometry-box> | no-clip] || <compositing-operator>] #

Parametri

Parametro Dettagli
clip-fonte Un URL che può puntare a un elemento SVG in linea (o) a un elemento SVG in un file esterno che contiene la definizione del percorso della clip.
basic-figura Si riferisce a uno tra inset() , circle() , ellipse() o polygon() . Usando una di queste funzioni viene definito il tracciato di ritaglio. Queste funzioni di forma funzionano esattamente nello stesso modo in Shapes per float
clip-geometria-box Questo può avere uno tra content-box , padding-box , border-box , margin-box , fill-box , stroke-box , view-box come valori. Quando questo viene fornito senza alcun valore per <forma base>, i bordi della casella corrispondente vengono utilizzati come percorso per il ritaglio. Quando viene utilizzato con una <forma base>, funge da riquadro di riferimento per la forma.
maschera-riferimento Questo può essere none o un'immagine o un URL di riferimento a un'origine di immagine maschera.
repeat-style Specifica come la maschera deve essere ripetuta o affiancata negli assi X e Y. I valori supportati sono repeat-x , repeat-y , repeat , space , round , no-repeat .
maschera-mode Può essere alpha o luminance o auto e indica se la maschera deve essere trattata come maschera alfa o maschera di luminanza. Se non viene fornito alcun valore e il riferimento alla maschera è un'immagine diretta, verrà considerato come maschera alfa (o) se il riferimento alla maschera è un URL, allora sarebbe considerato come maschera di luminanza.
posizione Specifica la posizione di ogni livello maschera ed è simile nel comportamento alla proprietà background-position . Il valore può essere fornito in 1 sintassi del valore (come in top , 10% ) o in 2 sintassi del valore (come in top right , 50% 50% ).
Geometria-box Specifica la casella in cui la maschera deve essere ritagliata ( area di pittura maschera ) o la casella che deve essere utilizzata come riferimento per l'origine della maschera ( area di posizionamento maschera ) in base alla proprietà. L'elenco di valori possibili è content-box , padding-box , border-box , margin-box , fill-box , stroke-box , view-box . Spiegazione dettagliata su come funzionano ciascuno di questi valori è disponibile nella specifica W3C .
bg-size Rappresenta la dimensione di ogni livello maschera-immagine e ha la stessa sintassi background-size . Il valore può essere lunghezza o percentuale o auto o copertura o contenere. Lunghezza, percentuale e auto possono essere forniti come valore singolo o come uno per ciascun asse.
composizione-operatore Può essere uno qualsiasi tra add , subtract , exclude , multiply per layer e definisce il tipo di operazione di compositing che dovrebbe essere usata per questo layer con quelli sotto di esso. Spiegazione dettagliata su ciascun valore è disponibile nelle specifiche W3C .

Osservazioni

CSS Clipping and Masking sono concetti molto nuovi e quindi il supporto del browser per queste proprietà è piuttosto basso.

Maschere:

Al momento della stesura di questo articolo (16 luglio), Chrome, Safari e Opera supportano queste proprietà con il prefisso -webkit- .

Firefox non richiede prefissi ma supporta le maschere solo se utilizzato con elementi mask SVG. Per gli elementi mask SVG in linea, la sintassi è mask: url(#msk) mentre per l'utilizzo di elementi mask in un file SVG esterno la sintassi è mask: url('yourfilepath/yourfilename.svg#msk') . #msk in entrambi i casi si riferisce alla id della mask elemento che ci si riferisce. Come indicato in questa risposta , al momento Firefox non supporta alcun parametro diverso dal mask-reference alla mask proprietà mask .

Internet Explorer (e Edge) non offre ancora alcun supporto per questa proprietà.

La proprietà in mask-mode è attualmente supportata da alcun browser con o senza prefissi.

Clip-path:

Al momento della scrittura (16 luglio), Chrome, Safari e Opera supportano il clip-path quando il percorso viene creato utilizzando forme di base (come circle , polygon ) o la sintassi url(#clipper) con SVG in linea. Non supportano il ritaglio basato su forme che fanno parte di file SVG esterni. Inoltre, richiedono il prefisso -webkit per essere presenti.

Firefox supporta solo la sintassi url() per clip-path mentre Internet Explorer (e Edge) non offrono supporto.

Ritaglio (poligono)

CSS:

div{
  width:200px;
  height:200px;
  background:teal;
  clip-path: polygon(0 0, 0 100%, 100% 50%); /* refer remarks before usage */
}

HTML:

<div></div>

Nell'esempio sopra, un tracciato di ritaglio poligonale viene utilizzato per ritagliare l'elemento quadrato (200 x 200) in una forma triangolare. La forma di output è un triangolo perché il percorso inizia da (ovvero, le prime coordinate sono a) 0 0 - che è l'angolo in alto a sinistra della casella, quindi passa a 0 100% - che è l'angolo in basso a sinistra della casella e infine al 100% 50% che non è altro che il punto medio-centrale della scatola. Questi percorsi sono auto-chiudenti (cioè, il punto di partenza sarà il punto finale) e quindi la forma finale è quella di un triangolo.

Questo può anche essere usato su un elemento con un'immagine o un gradiente come sfondo.

Visualizza esempio

Produzione:

inserisci la descrizione dell'immagine qui

Ritaglio (Cerchio)

CSS:

div{
  width: 200px;
  height: 200px;
  background: teal;
  clip-path: circle(30% at 50% 50%); /* refer remarks before usage */
}

HTML

<div></div>

Questo esempio mostra come tagliare un div a un cerchio. L'elemento è ritagliato in un cerchio il cui raggio è il 30% in base alle dimensioni della casella di riferimento con il suo punto centrale al centro della casella di riferimento. Qui dal momento che non viene fornita la <casella di clip-geometria> (in altre parole, casella di riferimento), la border-box di border-box dell'elemento verrà utilizzata come casella di riferimento.

La forma del cerchio deve avere un raggio e un centro con le coordinate (x,y) :

circle(radius at x y)

Visualizza esempio

Produzione:

Cerchia con percorso clip CSS

Ritaglio e mascheratura: panoramica e differenza

Con il ritaglio e il mascheramento puoi rendere alcune parti specifiche degli elementi trasparenti o opache. Entrambi possono essere applicati a qualsiasi elemento HTML.

Ritaglio

Le clip sono percorsi vettoriali. Al di fuori di questo percorso l'elemento sarà trasparente, all'interno è opaco. Pertanto è possibile definire una proprietà clip-path sugli elementi. Ogni elemento grafico che esiste anche in SVG puoi usare qui come una funzione per definire il percorso. Gli esempi sono circle() , polygon() o ellipse() .

sentiero

Esempio
clip-path: circle(100px at center);

L'elemento sarà visibile solo all'interno di questo cerchio, che è posizionato al centro dell'elemento e ha un raggio di 100 px.

mascheramento

Le maschere sono simili alle clip, ma invece di definire un percorso si definisce una maschera su quali livelli si sovrappongono all'elemento. Puoi immaginare questa maschera come un'immagine che consiste principalmente di due colori: bianco e nero.

Maschera di luminanza : il nero indica che la regione è opaca e bianca che è trasparente, ma esiste anche un'area grigia che è semitrasparente, quindi è possibile effettuare transizioni omogenee.

Maschera Alpha : solo sulle aree trasparenti della maschera l'elemento sarà opaco.

maschera di luminanza

Questa immagine, ad esempio, può essere utilizzata come maschera di luminanza per rendere un elemento una transizione molto fluida da destra a sinistra e da opaca a trasparente.

La proprietà mask consente di specificare il tipo di maschera e un'immagine da utilizzare come layer.

Esempio
mask: url(masks.svg#rectangle) luminance;

Un elemento chiamato rectangle definito in masks.svg verrà utilizzato come maschera di luminanza sull'elemento.

Maschera semplice che dissolve un'immagine da solida a trasparente

CSS

div {
  height: 200px;
  width: 200px;
  background: url(http://lorempixel.com/200/200/nature/1);
  mask-image: linear-gradient(to right, white, transparent); 
}

HTML

<div></div>

Nell'esempio sopra c'è un elemento con un'immagine come sfondo. La maschera applicata all'immagine (usando i CSS) fa sembrare che si stia dissolvendo da sinistra a destra.

Il mascheramento si ottiene utilizzando un linear-gradient che va dal bianco (a sinistra) a trasparente (a destra) come maschera. Essendo una maschera alfa, l'immagine diventa trasparente dove la maschera è trasparente.

Uscita senza maschera:

inserisci la descrizione dell'immagine qui

Uscita con la maschera:

inserisci la descrizione dell'immagine qui

Nota: come accennato in precedenza, l'esempio precedente funzionerebbe in Chrome, Safari e Opera solo se usato con il prefisso -webkit . Questo esempio (con un linear-gradient come immagine maschera) non è ancora supportato in Firefox.

Utilizzo di maschere per tagliare un buco nel mezzo di un'immagine

CSS

div {
  width: 200px;
  height: 200px;
  background: url(http://lorempixel.com/200/200/abstract/6);
  mask-image: radial-gradient(circle farthest-side at center, transparent 49%, white 50%); /* check remarks before using */
}

HTML

Nell'esempio sopra, un cerchio trasparente viene creato al centro usando il radial-gradient e viene quindi utilizzato come maschera per produrre l'effetto di un cerchio che viene ritagliato dal centro di un'immagine.

Immagine senza maschera:

inserisci la descrizione dell'immagine qui

Immagine con maschera:

inserisci la descrizione dell'immagine qui

Utilizzo di maschere per creare immagini con forme irregolari

CSS

div { /* check remarks before usage */
  height: 200px;
  width: 400px;
  background-image: url(http://lorempixel.com/400/200/nature/4);
  mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white);
  mask-size: 75% 25%, 25% 25%, 100% 75%;
  mask-position: bottom left, bottom right, top left;
  mask-repeat: no-repeat;
}

HTML

<div></div>

Nell'esempio sopra, tre immagini a linear-gradient (che quando sono posizionate nelle posizioni appropriate coprono il 100% x 100% delle dimensioni del contenitore) vengono utilizzate come maschere per produrre un taglio triangolare trasparente nella parte inferiore dell'immagine.

Immagine senza maschera:

inserisci la descrizione dell'immagine qui

Immagine con la maschera:

inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow