DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Die clip-path Eigenschaft in CSS erlaubt es Ihnen, einen bestimmten Bereich eines Elements anzugeben, der angezeigt werden soll, während der Rest verborgen (oder "abgeschnitten") wird.
.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 */
}
Es gab früher eine clip Eigenschaft, aber beachten Sie, dass diese veraltet ist.
Der häufigste Anwendungsfall wäre ein Bild, aber es ist nicht darauf beschränkt. Sie könnten genauso gut clip-path auf ein Absatz-Tag anwenden und nur einen Teil des Textes anzeigen.
<img class="clip-me" src="/images/image-to-be-clipped.png" alt="Descriptioin of image">
<p class="clip-me">
I'll be clipped.
</p>
Diese vier Werte in inset() (im obigen CSS) repräsentieren den **oben/links** Punkt und den **unten/rechts** Punkt, die das sichtbare Rechteck bilden. Alles außerhalb dieses Rechtecks ist verborgen.

clip: rect(); Syntax** sehr gut.Andere mögliche Werte
.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%);
}
Beispiel für SVG-Clip-Pfad
<clipPath id="clipping">
<circle cx="150" cy="150" r="50" />
<rect x="150" y="150" width="100" height="100" />
</clipPath>
Es ist sehr seltsam, dass clip-path die path() Funktion nicht von Anfang an unterstützte, da path() bereits für Eigenschaften wie motion-path existiert. Firefox unterstützt sie inzwischen, und wir warten auf die restlichen Browser. Siehe Eine erste Implementierung von clip-path: path();
Erstellen Sie Ihre eigenen
Bis wir path() zuverlässig verwenden können, sind die nützlichsten Schnitte für schicke benutzerdefinierte Formen polygon(). Hier ist ein wirklich schöner Editor dafür von Mads Stoumann (der auch für Kreise und Ellipsen funktioniert)
Weitere Informationen
- Clipping und Masking in CSS
- clip-path auf WPD
- clip-path auf MDN
- Clippy: Bennett Feelys clip-path Maker
- Clipping und Masking auf MDN
- Die (veraltete) CSS Clip Eigenschaft (Impressive Webs)
- Spezifikation zu CSS Masking
- CSS Masking von Dirk Schulze
- Clipping in CSS und SVG – Die clip-path Eigenschaft und das Element von Sara Soueidan
- Pens mit dem Tag clip-path auf CodePen
- Demos und Browser-Support-Demo Pen von Yoksel
- SVG Masks von Jakob Jenkov
- Alan Greenblatts Forschung zum Browser-Support-Level für Clipping- und Masking-Funktionen
Browser-Unterstützung
Diese Browser-Support-Daten stammen von Caniuse, das mehr Details enthält. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.
Desktop
| Chrome | Firefox | IE | Edge | Safari |
|---|---|---|---|---|
| 130 | 54 | Nein | 127 | TP |
Mobil / Tablet
| Android Chrome | Android Firefox | Android | iOS Safari |
|---|---|---|---|
| 127 | 127 | 127 | 18.0 |
Hey, schön, dass Ihnen das Bild gefallen hat. :)
Nur eine kurze Korrektur. Sie sagten
„Die Spezifikation besagt, dass Kommas zur Trennung der Werte verwendet werden sollen. IE 4-7 unterstützen diese Eigenschaft, nur ohne die Leerzeichen.“
Ich glaube, Sie meinten „...nur ohne die Kommas“ oder „...nur mit Leerzeichen“.
„Diese vier Werte repräsentieren den „oben/links“-Punkt und den „unten/rechts“-Punkt, die das sichtbare Rechteck bilden. Alles außerhalb dieses Rechtecks ist verborgen.“
Ich glaube, „oben/links“ sollte „oben/rechts“ und „unten/rechts“ sollte „unten/links“ sein.
Man lernt jeden Tag etwas Neues :P
Ein Hinweis ist, dass die Kommas tatsächlich **vermieden** werden sollten, wenn Sie ältere Versionen von IE unterstützen. Die Verwendung eines Leerzeichens zur Trennung von T R B L funktioniert browserübergreifend.
Übrigens: Wir sind riesige Fans von css-tricks hier bei Noble Desktop. Danke, dass Sie Ihre Sache machen!
Toller Artikel! Gibt es eine Ahnung bezüglich der Unterstützung auf iOS? Ich benutze einen iPod Touch der 2. Generation mit iOS 4.2.3, sehe aber keinen Clip-Effekt. Das Hinzufügen eines
-webkit-Präfixes scheint nichts zu bewirken. Irgendwelche Ideen?Can I Use verweist auf keine IE-Unterstützung. Was ist hier passiert?
iOS 8 Safari scheint keine animierten clip-paths zu unterstützen, wie ich bei der Verwendung von velocity.js festgestellt habe.
Das ist ziemlich cool, aber es scheint nicht auf dem Video-Tag zu funktionieren. Wie könnte ich diesen Effekt auf dem Video-Tag erzielen? Ich habe diese Frage auf StackOverflow gestellt.
Leider verschieben sie ständig die Zielpfosten und dieser Artikel gibt keine Hinweise auf die Syntax davor und danach, was meiner Meinung nach sehr wichtig ist, wenn Sie möchten, dass Ihre Clips in allen Browserversionen funktionieren.
Ich weiß, dass meine v34 Clips unten funktionieren, aber ich kämpfe darum, die neuen v35 zum Laufen zu bringen, daher wäre jede Hilfe willkommen.
Ich bin auch an diesem Artikel interessiert, ich werde ihn verfolgen, aber ich erwarte nicht, dass es viele Updates geben wird. Da Clip jetzt weg ist und clip-path nur teilweise unterstützt wird, bin ich neugierig auf andere Möglichkeiten, dieses Verhalten zu replizieren, oder werden wir gezwungen sein, auf eine bessere Browser-Unterstützung zu warten (ich hoffe wirklich nicht).
Es ist nicht validierbar für den w3cvalidator, Fehler wie dieser Eigenschaft clip-path existiert nicht
.our-genius .style1 {
float:left;
position: relative;
/Chrome, Safari/
-webkit-clip-path: polygon(0px 424px,491px 500px,415px 0px,0px 0px);
-ms-clip-path: polygon(0px 424px,491px 500px,415px 0px,0px 0px);
/Firefox/
clip-path: url(“index.html#clipPolygon1”);
-moz-clip-path: url(“index.html#clipPolygon1”);
-moz-clip-path: polygon(0px 424px,491px 500px,415px 0px,0px 0px);
}
Hallo. Funktioniert es für SWF-Inhalte? Ich habe es für Bilder versucht, aber Flash-Inhalte werden nicht abgeschnitten.
Hallo,
clip-path funktioniert NUR mit einem Präfix in Webkit. Vielleicht sollte dies in diesen Artikel aufgenommen werden...
Außerdem ist die CSS-Implementierung in den meisten Browsern SEHR erratisch, und ich empfehle jedem, der das Überlegen hat, Clipping in CSS zu verwenden – tun Sie es, indem Sie einfach das Bild oder das Element in einem umgebenden DIV wrappen und DIESES auf overflow hidden setzen und somit die Abmessungen des DIVs (das ein Rechteck ist) anpassen...
Das funktioniert jedes Mal – in jedem Browser....
Clip und clip-path SOLLTEN vermieden werden. Zumindest bis sich die Leute, die mit der Erstellung von Webbrowsern herumfuchteln, einigen...
Wieder einmal geht ein großartiger Vorschlag daneben!
Ich habe eine kleine Demo mit drei verschiedenen Clipping-Techniken zusammengestellt. Schauen Sie sich mattias.pw/pens/2016/08/08/clipping-101/ an.
nette kleine Demo dort! Auch danke, dass Sie mich an diesen Artikel erinnert haben. Leider hat sich clip-path bisher bei weitem nicht so entwickelt, wie ich es mir gewünscht hätte. Zufälligerweise arbeite ich gerade an einer Website, bei der dies unglaublich nützlich gewesen wäre. Leider werde ich auf SVG zurückgreifen müssen, vielleicht eines Tages bald!
Hallo! Muss ich die Präfixe -o- und -moz- zustimmen, damit es in Nicht-Webkit-Browsern funktioniert?
@keyframes rotacion-electrica {
-webkit-transition-timing-function: linear;
transition-timing-function: linear;
from {
-webkit-clip-path: circle(60% at 50% 50%);
clip-path: circle(60% at 50% 50%);
opacity: 0.9;
}
to {
-webkit-clip-path: circle(60% at 50% 50%);
-webkit-transform:rotate(0deg);
clip-path: circle(60% at 50% 50%);
transform: rotate(360deg);
opacity: 1;
}
}
Jean Phillip
http://www.iliiet.com/portal
Wie verwende ich die clip-path Eigenschaft für den MS Edge Browser? Es scheint keine Unterstützung zu geben.
Auch für Mozilla müssen wir das Flag layout.css.clip-path-shapes.enabled auf true setzen, um diese Regel zu unterstützen, aber mein Endkunde weiß das vielleicht nicht, gibt es dafür eine Workaround?
Jede Hilfe wäre willkommen! :)
Was ist mit dem Clipping von Elementen mit Hintergrundbildern?
Stellen wir uns vor, Sie haben ein div-Tag mit einem einfachen (nicht wiederholenden) Hintergrundbild und möchten die Unterseite dieses Tags abschneiden. Zusätzlich wird eine Hover-Aktion mit einem 2px soliden Rand benötigt. Was wäre eine browserübergreifende und responsive Lösung?
Danke für den tollen Artikel!
Clip path = keine IE / Edge Unterstützung. http://caniuse.com/#feat=css-clip-path. Edge hat es seit 2014 als mittelmäßige Priorität eingestuft...
Der Text verschwindet aus meinem Polygon, wenn ich hineinzoome. Ich bin neu in der Gestaltung und würde mich freuen, Ihre Meinung zu hören.
-webkit-clip-path: polygon(0 51%, 100% 72%, 100% 100%, 0% 100%);
clip-path: polygon(0 51%, 100% 72%, 100% 100%, 0% 100%);
Stand August 2019 unterstützt MS Edge offiziell immer noch kein clip-path: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18788318/
Ihre Seite (und ihre intern verlinkte Dokumentation) ist ein Witz. An einigen Stellen ist die Unterstützung „eingeführt“ und „unterstützt“, an anderen wird sie als gar nicht unterstützt angegeben.
Ich, wie viele meiner Freunde hier, bin widerwillig, meine Seiten weiterhin mit SVG für die Microsoft-Kompatibilität zu hacken. Ich habe meine Karriere damit verbracht, mein sauberes HTML für die Gunst von Microsoft-Browsern zu verpfuschen.
Wie wir in Großbritannien sagen, weiß die linke Hand nicht, was die rechte tut in ihren Hallen.
Schämt euch. Warum sie IE und Edge nicht einfach abgeschafft haben, ist uns allen ein Rätsel.
</rant>Gibt es einen Konverter, um absolute Werte in Prozente für responsive Clipping-Pfade für Pfade zu übersetzen?
Wenn Sie regelmäßige, gleichseitige Polygone benötigen – von einem 3-seitigen Dreieck bis zu einem 100-seitigen Hekotgon – habe ich gerade ein neues Tool dafür entwickelt
Es hat auch eine „inset“-Option, die einen Mittelpunkt auf einer Polygonseite erzeugt, der nach innen gezogen werden kann (für coole Effekte und Animationen!). Es gibt eine Live-Code-Ausgabe, sowohl für clip-path als auch für SVG.
Während clip image die Position eines Bildes von statisch auf relativ ändert. Wenn nicht, warum wird es dann sichtbar?
So nützlich!