xywh()

Baseline 2024
新推出

自 ⁨2024 年 1 月⁩起,此特性已在最新的裝置和瀏覽器版本中可用。此特性可能無法在較舊的裝置或瀏覽器上使用。

xywh() CSS 函式使用從包含塊的左邊緣 (x) 和上邊緣 (y) 的指定距離以及矩形的指定寬度 (w) 和高度 (h) 建立一個矩形。它是 <basic-shape> 資料型別 的基本形狀函式。你可以在 CSS 屬性(例如 offset-path)中使用 xywh() 函式來建立元素移動的矩形路徑,在 clip-path 中使用它來定義剪下區域的形狀。

語法

css
offset-path: xywh(0 1% 2px 3% round 0 1px 2% 3px);
clip-path: xywh(1px 2% 3px 4em round 0 1% 2px 3em);

<length-percentage>

指定矩形 xy 座標的 <length-percentage> 值。

<length-percentage [0,∞]>

指定矩形寬度和高度的非負 <length-percentage> 值。最小值可以為零,最大值沒有限制。

round <'border-radius'>

使用與 CSS border-radius 簡寫屬性相同的語法指定矩形圓角的半徑。此引數是可選的。

正式語法

<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} ]?

示例

使用 xywh() 建立 offset-path

在下面的示例中,offset-path 屬性使用 xywh() 函式來定義元素(在本例中為洋紅色框)移動的路徑形狀。顯示了兩種不同的場景,每種場景的 xywh() 函式值都不同。框內的箭頭指向框的右邊緣。

html
<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>
css
.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%;
  }
}

結果

  • 路徑 1 矩形從包含塊的左邊緣和上邊緣偏移 20px。此路徑矩形與包含塊具有相同的尺寸,即寬度是包含塊寬度的 100%,高度是包含塊高度的 100%。請注意框中的箭頭如何沿著矩形路徑角處的 10% 曲線(由 round 10% 定義)移動。
  • 由於 xywh() 中寬度和高度的上限都是無窮大,因此將路徑 2 矩形的高度設定為 200% 會使生成的矩形比包含塊高兩倍。請注意當未指定 round <'border-radius'> 時,框中的箭頭在角處的行為。

規範

規範
CSS Shapes Module Level 1
# funcdef-basic-shape-xywh

瀏覽器相容性

另見