xywh()
Baseline
2024
Newly available
Since January 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die xywh() CSS Funktion erstellt ein Rechteck unter Verwendung der angegebenen Abstände von den linken (x) und oberen (y) Rändern des umgebenden Blocks sowie der angegebenen Breite (w) und Höhe (h) des Rechtecks. Es ist eine Grundformfunktion des <basic-shape> Datentyps. Sie können die Funktion xywh() in CSS-Eigenschaften wie offset-path verwenden, um den rechteckigen Pfad zu erstellen, entlang dem sich ein Element bewegt, und in clip-path, um die Form des Clipping-Bereichs 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 diexundyKoordinaten 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 hat keine Grenze. round <'border-radius'>-
Gibt den Radius der abgerundeten Ecken des Rechtecks an, wobei die gleiche Syntax wie bei der CSS
border-radiusKurzschreibweise verwendet wird. 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-paths mit xywh()
Im folgenden Beispiel verwendet die offset-path-Eigenschaft die xywh()-Funktion, um die Form des Pfads zu definieren, auf dem sich das Element, in diesem Fall ein magentafarbener Kasten, bewegt. Es werden zwei verschiedene Szenarien gezeigt, jedes mit unterschiedlichen Werten für die xywh()-Funktion. Der Pfeil innerhalb der Kästen zeigt auf den rechten Rand des Kastens.
<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 Pfades 1 wird um
20pxvon den linken und oberen Rändern des umgebenden Blocks versetzt. Dieses Pfad-Rechteck hat die gleichen Dimensionen wie der umgebende Block, das heißt, die Breite beträgt100%der Breite des umgebenden Blocks und die Höhe beträgt100%der Höhe des umgebenden Blocks. Beachten Sie, wie der Pfeil im Kasten der10%-Kurve (definiert durchround 10%) an den eckigen Pfadecken 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%im Rechteck des Pfades 2 das erzeugte Rechteck doppelt so hoch wie der umgebende Block. Beachten Sie, wie der Pfeil im Kasten sich an den Ecken verhält, wenn keinround <'border-radius'>angegeben ist.
Spezifikationen
| Specification |
|---|
| CSS Shapes Module Level 1> # funcdef-basic-shape-xywh> |
Browser-Kompatibilität
Siehe auch
inset()Funktionrect()Funktionclip-pathEigenschaftoffset-pathEigenschaft<basic-shape>Datentyp- CSS-Formen Modul
- Leitfaden zu Grundformen