跳到內容
v0.4.8

Wrap 換行橫列 ​

水平排列子層,寬度不足時自動換行。

用法 ​

html
<div sl-wrap>
  <button sl-button>送出</button>
  <button sl-button>取消</button>
  <span sl-chip>標籤</span>
</div>
原始碼
<div sl-wrap style="max-inline-size: 22rem">
  <button sl-button>送出</button>
  <button sl-button="outline">取消</button>
  <span sl-chip>標籤</span>
  <span sl-chip>另一個標籤</span>
  <span sl-chip>比較長的標籤</span>
  <span sl-chip>更多</span>
</div>

子層垂直置中、寬度不變;總寬超過容器時,整列換到下一行。換行時機取決於內容的實際寬度,沒有固定斷點。

底層為啟用 flex-wrap 的 flexbox。與 sl-grid 的分工如下。

子層寬度依內容決定、欄數隨容器而變時用 sl-wrap;每欄等寬、欄數固定時用 sl-grid。

對齊 ​

子層預設自起點排起。置中、靠尾或平均分散用 sl-justify,寫在 wrap 自身:

html
<div sl-wrap sl-justify="end">
  <button sl-button>送出</button>
  <button sl-button>取消</button>
</div>

水平分佈各選項的效果:

原始碼
<div sl-wrap style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-justify="start" style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-justify="center" style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-justify="end" style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-justify="between" style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-justify="around" style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-justify="evenly" style="width: 20rem">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>

垂直方向由 sl-align 控制。

子層預設垂直置中,start 對齊列頂、end 對齊列底。sl-align 亦可標在單一子層上,使該項離開共同對齊。

垂直對齊各選項的效果:

原始碼
<div sl-wrap>
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-align="start">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-align="center">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-align="end">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-align="stretch">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>

間距 ​

間距由 sl-gap 給定,寫在 wrap 自身或外層皆可,預設 md。水平間距與換行後的行距為同一個值。

僅調整單一容器時,改寫 --sl-wrap-gap。

各間距的效果:

原始碼
<div sl-wrap>
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-gap="sm">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-gap="md">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>
<div sl-wrap sl-gap="lg">
  <div style="min-height: 1.5rem">項目 1</div>
  <div style="min-height: 3rem">項目 2</div>
  <div style="min-height: 2rem">項目 3</div>
</div>