polygon()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Die polygon()
CSS Funktion ist eine der <basic-shape>
Datentypen. Sie wird verwendet, um ein Polygon zu zeichnen, indem ein oder mehrere Paare von Koordinaten angegeben werden, die jeweils einen Eckpunkt der Form darstellen.
Probieren Sie es aus
Syntax
/* Specified as coordinate list */
/* polygon(<length-percentage> <length-percentage>, ... )*/
polygon(50% 2.4%, 34.5% 33.8%, 0% 38.8%, 25% 63.1%, 19.1% 97.6%)
polygon(0px 0px, 200px 100px, 0px 200px)
polygon(0% 0px, 100% 100px, 0px 100%)
polygon(0 0, 50% 1rem, 100% 2vw, calc(100% - 20px) 100%, 0 100%)
/* Specified as coordinate list and fill rule*/
/* polygon(<fill-rule> <length-percentage> <length-percentage>, ... )*/
polygon(nonzero, 0% 0%, 50% 50%, 0% 100%)
polygon(evenodd, 0% 0%, 50% 50%, 0% 100%)
Die polygon()
-Parameter werden durch ein Komma und optionalen Leerraum getrennt. Der erste Parameter ist ein optionaler <fill-rule>
Wert. Zusätzliche Parameter sind Punkte, die das Polygon definieren. Jeder Punkt ist ein Paar von x/y-Koordinaten <length-percentage>
Werten, die durch ein Leerzeichen getrennt sind, z. B. "0 0" und "100% 100%" für die linke/obere und die untere rechte Ecke.
Parameter
<fill-rule>
Optional-
Ein optionaler Wert von
nonzero
(Standardwert, wenn weggelassen) oderevenodd
, der die Füllregel angibt. <length-percentage>
-
Jeder Eckpunkt des Polygons wird durch ein Paar von
<length-percentage>
Werten dargestellt, die die x/y-Koordinaten des Eckpunkts relativ zur Referenzbox der Form angeben.
Rückgabewert
Gibt einen <basic-shape>
Wert zurück.
Beschreibung
Mit der polygon()
Funktion können Sie fast jede Form erstellen, indem Sie die Koordinaten ihrer Punkte angeben. Die Reihenfolge, in der Sie die Punkte definieren, ist wichtig und kann zu unterschiedlichen Formen führen. Die polygon()
Funktion erfordert mindestens 3 Punkte, was ein Dreieck erzeugt, es gibt jedoch keine obere Grenze.
Die polygon()
Funktion akzeptiert durch Kommas getrennte Koordinaten oder Punkte als Werte. Jeder Punkt wird durch ein Paar von leerzeichengetrennten x
und y
Werten dargestellt, die die Koordinaten der Punkte innerhalb des Polygons anzeigen.
polygon(x1 y1, x2 y2, x3 y3, x4 y4, xn yn)
Aus dem Obigen ergibt sich, dass die Zuordnung der Koordinaten des Containers wie folgt visualisiert werden kann:
Achse | Punkt 1 | Punkt 2 | Punkt 3 | Punkt 4 | Punkt n |
---|---|---|---|---|---|
x | 0% | 100% | 100% | 0% | xn |
y | 0% | 0% | 100% | 100% | yn |
Anwendung dieser Koordinaten auf die CSS clip-path
Eigenschaft mit der polygon()
Funktion:
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
Dies würde eine rechteckige Form in der Größe ihres übergeordneten Inhalts erstellen, indem die Koordinaten ihrer vier Ecken angegeben werden: oben-links (0% 0%
), oben-rechts (100% 0%
), unten-rechts (100% 100%
), und unten-links (0% 100%
).
Formale Syntax
Beispiele
Erstellen eines Dreiecks
In diesem Beispiel wird ein Dreieck gebildet, indem die Koordinaten seiner drei Punkte definiert werden.
HTML
<div class="triangle"></div>
CSS
.triangle {
width: 400px;
height: 400px;
background-color: magenta;
clip-path: polygon(100% 0%, 50% 50%, 100% 100%);
}
Ergebnis
Die Koordinaten für das Dreieck sind die obere rechte Ecke (100% 0%
), der Mittelpunkt (50% 50%
) und die untere rechte Ecke (100% 100%
) des Containers.
Festlegen eines Polygons für shape-outside
In diesem Beispiel wird eine Form erstellt, der der Text mit der shape-outside
Eigenschaft folgt.
<div class="box">
<div class="shape"></div>
<p>
One November night in the year 1782, so the story runs, two brothers sat
over their winter fire in the little French town of Annonay, watching the
grey smoke-wreaths from the hearth curl up the wide chimney. Their names
were Stephen and Joseph Montgolfier, they were papermakers by trade, and
were noted as possessing thoughtful minds and a deep interest in all
scientific knowledge and new discovery. Before that night—a memorable night,
as it was to prove—hundreds of millions of people had watched the rising
smoke-wreaths of their fires without drawing any special inspiration from
the fact.
</p>
</div>
.box {
width: 250px;
}
.shape {
float: left;
shape-outside: polygon(
0 5%,
15% 12%,
30% 15%,
40% 26%,
45% 35%,
45% 45%,
40% 55%,
10% 90%,
10% 98%,
8% 100%,
0 100%
);
width: 300px;
height: 320px;
}
p {
font-size: 0.9rem;
}
Spezifikationen
Specification |
---|
CSS Shapes Module Level 1 # funcdef-basic-shape-polygon |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Eigenschaften, die diesen Datentyp verwenden:
clip-path
,shape-outside
- Leitfaden zu Grundformen