xywh() CSS-Funktion
Baseline
2024
Neu verfügbar
Seit January 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die xywh() CSS-Funktion erstellt ein Rechteck unter Verwendung der angegebenen Abstände vom linken (x) und oberen (y) Rand des umgebenden Blocks sowie der angegebenen Breite (w) und Höhe (h) des Rechtecks. Es ist eine Grundformenfunktion des <basic-shape> Datentyps. Sie können die xywh()-Funktion in CSS-Eigenschaften wie offset-path verwenden, um den rechteckigen Pfad zu erstellen, entlang dessen sich ein Element bewegt, und in clip-path, um die Form der Clipping-Region zu definieren.
Syntax
offset-path: xywh(0 1% 2px 3% round 0 1px 2% 3px);
clip-path: xywh(1px 2% 3px 4em round 0 1% 2px 3em);
Werte
<length-percentage>-
Gibt die
<length-percentage>-Werte für diex- undy-Koordinaten des Rechtecks an. <length-percentage [0,∞]>-
Gibt nicht negative
<length-percentage>-Werte für die Breite und Höhe des Rechtecks an. Der Mindestwert kann null sein, und der Höchstwert ist unbegrenzt. round <'border-radius'>-
Gibt den Radius der abgerundeten Ecken des Rechtecks an, unter Verwendung der gleichen Syntax wie die CSS-
border-radius-Kurzschreibweise. Dieser Parameter ist optional.
Formale Syntax
<xywh()> =
xywh( <length-percentage>{2} <length-percentage [0,∞]>{2} [ round <'border-radius'> ]? )
<length-percentage> =
<length> |
<percentage>
<border-radius> =
<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?
Beispiele
>Erstellen eines offset-path mit xywh()
Im folgenden Beispiel verwendet die offset-path-Eigenschaft die xywh()-Funktion, um die Form des Pfades zu definieren, auf dem sich das Element, in diesem Fall eine magentafarbene Box, bewegt. Zwei verschiedene Szenarien werden gezeigt, jedes mit unterschiedlichen Werten für die xywh()-Funktion. Der Pfeil innerhalb der Boxen zeigt auf die rechte Kante der Box.
<div class="container">
Rectangular path 1
<div class="path xywh-path-1">→</div>
</div>
<div class="container">
Rectangular path 2
<div class="path xywh-path-2">→</div>
</div>
.container {
position: relative;
display: inline-block;
width: 200px;
height: 200px;
border: 1px solid black;
margin: 30px;
text-align: center;
}
.path {
width: 50px;
height: 50px;
position: absolute;
background-color: magenta;
animation: move 10s linear infinite;
}
.xywh-path-1 {
offset-path: xywh(20px 20px 100% 100% round 10%);
}
.xywh-path-2 {
offset-path: xywh(20px 30% 150% 200%);
}
@keyframes move {
0% {
offset-distance: 0%;
}
100% {
offset-distance: 100%;
}
}
Ergebnis
- Das Rechteck des Pfads 1 ist um
20pxvon den linken und oberen Kanten des umgebenden Blocks versetzt. Dieses Pfadrechteck hat die gleichen Abmessungen wie der umgebende Block, das heißt, die Breite beträgt100%der Breite des umgebenden Blocks und die Höhe100%der Höhe desselben. Beachten Sie, wie der Pfeil innerhalb der Box der10%-Kurve (definiert durchround 10%) an den Ecken des rechteckigen Pfades folgt. - Da das obere Limit sowohl für die Breite als auch die Höhe in
xywh()unendlich ist, macht das Setzen der Höhe auf200%beim Rechteck des Pfads 2 das erzeugte Rechteck doppelt so hoch wie den umgebenden Block. Beachten Sie, wie sich der Pfeil innerhalb der Box an den Ecken verhält, wenn keinround <'border-radius'>angegeben ist.
Spezifikationen
| Spezifikation |
|---|
| CSS Shapes Module Level 1> # funcdef-basic-shape-xywh> |
Browser-Kompatibilität
Siehe auch
inset()-Funktionrect()-Funktionclip-path-Eigenschaftoffset-path-Eigenschaft<basic-shape>-Datentyp- CSS-Formen-Modul
- Leitfaden zu Grundformen