CSS

⌘K
  1. Home
  2. Docs
  3. CSS
  4. CSS Masking

CSS Masking

CSS Masking: CSS Masking ist eine Technik, die es ermöglicht, Teile eines Elements mithilfe von Masken zu verbergen oder hervorzuheben. Es ist besonders nützlich, wenn Sie Bilder, Texte oder andere visuelle Elemente in nicht rechteckigen Formen anzeigen möchten. Durch Maskierung wird die Sichtbarkeit bestimmter Bereiche des Elements gesteuert, indem verschiedene Maskierungstechniken wie mask-image oder clip-path verwendet werden.

Grundkonzepte

Mask-Image

Die Eigenschaft mask-image definiert das Bild oder die Form, die als Maske verwendet wird. Die Maske legt fest, welche Teile des Elements sichtbar sind und welche ausgeblendet werden. Ein maskiertes Element zeigt nur die Bereiche an, die in der Maske als “sichtbar” definiert sind.

Beispiel:

.image-mask {
    mask-image: url('mask-image.png');
}

In diesem Beispiel wird die Maske mask-image.png auf das Element angewendet. Bereiche der Maske, die transparente oder schwarze Bereiche enthalten, werden ausgeblendet.

Mask-Mode und Mask-Composite

  • mask-mode: Diese Eigenschaft steuert, wie die Maske interpretiert wird. Typische Werte sind alpha (Standard) und luminance.
  • mask-composite: Hiermit können mehrere Masken miteinander kombiniert werden. Es unterstützt Werte wie add, subtract, intersect und exclude.

Mask-Position, Mask-Size und Mask-Repeat

Diese Eigenschaften steuern die Position, Größe und Wiederholung der Maske:

  • mask-position: Positioniert die Maske ähnlich wie background-position.
  • mask-size: Definiert die Größe der Maske.
  • mask-repeat: Legt fest, ob die Maske wiederholt oder gedehnt wird.

Beispiel mit weiteren Maskeneigenschaften:

.image-mask {
    mask-image: url('mask-image.png');
    mask-size: cover;
    mask-position: center;
    mask-repeat: no-repeat;
}

Hier wird die Maske zentriert und so angepasst, dass sie das Element vollständig abdeckt.

Clip-Path

Die clip-path-Eigenschaft bietet eine alternative Möglichkeit, Elemente in bestimmten Formen zu maskieren, indem geometrische Formen (wie Kreise, Polygone oder Pfade) verwendet werden. Im Gegensatz zu mask-image wird bei clip-path kein Bild verwendet, sondern eine vektorbasierte Form.

Beispiel mit Clip-Path:

.shape {
    clip-path: circle(50%);
}

Dieses Beispiel erstellt eine kreisförmige Maske, die das Element in Form eines Kreises anzeigt.

Fortgeschrittene Konzepte

Mehrere Masken anwenden

CSS ermöglicht die Anwendung mehrerer Masken auf ein einziges Element, indem mehrere mask-image-Werte angegeben werden. Masken können dabei kombiniert werden, um komplexe Effekte zu erzielen.

.multi-mask {
    mask-image: url('mask1.png'), url('mask2.png');
    mask-composite: add;
}

In diesem Fall werden zwei Masken kombiniert, wobei mask-composite: add beide Masken vereint.

SVG-Masken

SVG bietet eine sehr flexible Möglichkeit zur Maskierung und kann in CSS direkt referenziert werden. SVG-Masken sind vektorbasierte Masken, die detaillierte und skalierbare Maskierungsoptionen bieten.

Beispiel für SVG-Maske in CSS:

  1. Erstellen Sie die SVG-Maske:
   <svg width="0" height="0">
       <mask id="mask1">
           <circle cx="50" cy="50" r="50" fill="white" />
       </mask>
   </svg>
  1. Verwenden Sie die SVG-Maske in CSS:
   .svg-mask {
       mask: url(#mask1);
   }

Diese SVG-Maske wird auf das Element angewendet und zeigt nur die Bereiche an, die innerhalb des Kreises liegen.

Best Practices

  • Leistungsoptimierung: Große und komplexe Masken können die Performance beeinträchtigen. Testen Sie die Masken auf verschiedenen Geräten.
  • Verwendung von SVG für skalierbare Masken: SVG bietet eine skalierbare und flexible Lösung für Masken, die in verschiedenen Bildschirmgrößen verwendet werden können.
  • Clip-Path für einfache Formen: Verwenden Sie clip-path, wenn einfache geometrische Formen ausreichen, da es oft besser optimiert ist als mask-image.

Häufig gestellte Fragen

Wie unterscheidet sich mask-image von clip-path?

mask-image verwendet ein Bild, um die Sichtbarkeit eines Elements zu steuern, während clip-path eine vektorbasierte Form wie ein Rechteck oder einen Kreis definiert. Clip-Path ist besser für einfache Formen geeignet.

Kann ich Masken auf Text anwenden?

Ja, CSS-Masken können auch auf Textelemente angewendet werden, was zu interessanten Texteffekten führt.

Funktioniert Masking in allen Browsern?

Die Unterstützung für Masking ist in modernen Browsern weit verbreitet, aber es kann in älteren Browsern zu Kompatibilitätsproblemen kommen. Eine Fallback-Option zu berücksichtigen ist daher ratsam.

Zusammenfassung

CSS Masking bietet zahlreiche Möglichkeiten zur kreativen Gestaltung von Webseiten, indem bestimmte Bereiche eines Elements maskiert werden. Masking-Techniken wie mask-image und clip-path ermöglichen es, einzigartige Formen und Effekte zu erzielen und sind besonders in modernen Designs unverzichtbar.

Übungsaufgaben

  1. Erstellen Sie ein Bild mit einer kreisförmigen Maske, die nur die Mitte des Bildes zeigt.
  2. Verwenden Sie eine SVG-Maske, um ein Element in einer komplexen Form anzuzeigen, und testen Sie die Skalierbarkeit der Maske.

Handlungsempfehlungen

CSS Masking ist eine leistungsstarke Technik, die sparsam und gezielt eingesetzt werden sollte. Experimentieren Sie mit den verschiedenen Maskierungsoptionen, um Ihre Designs dynamischer zu gestalten und dennoch auf Leistung und Kompatibilität zu achten.