masonry-auto-flow
語法
css
/* Keyword values */
masonry-auto-flow: pack;
masonry-auto-flow: next;
masonry-auto-flow: ordered;
masonry-auto-flow: definite-first;
masonry-auto-flow: next ordered;
/* Global values */
masonry-auto-flow: inherit;
masonry-auto-flow: initial;
masonry-auto-flow: revert;
masonry-auto-flow: revert-layer;
masonry-auto-flow: unset;
此屬性可以採用以下兩種形式之一
- 單個關鍵字:
pack、next、definite-first或ordered之一 - 兩個關鍵字,例如
next ordered。
值
pack-
根據預設的砌體演算法,專案將放置在空間最大的軌道中。
next-
專案將按網格軸順序一個接一個地放置。
definite-first-
如預設的砌體演算法所示顯示,先放置具有確定位置的專案,然後再放置其他砌體專案。
ordered-
忽略任何具有確定位置的專案,並根據順序修改後的文件順序放置所有專案。
正式定義
正式語法
錯誤:找不到此專案的語法
示例
使用 next 關鍵字
HTML
html
<div id="grid">
<div id="item1"></div>
<div id="item2"></div>
<div id="item3"></div>
<div id="item4"></div>
<div id="item5"></div>
</div>
<select id="flow">
<option value="pack">pack</option>
<option value="next">next</option>
</select>
CSS
css
#grid {
height: 200px;
width: 200px;
display: grid;
gap: 10px;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: masonry;
masonry-auto-flow: pack;
}
#item1 {
background-color: lime;
height: 2em;
}
#item2 {
background-color: yellow;
}
#item3 {
background-color: blue;
height: 3em;
}
#item4 {
background-color: red;
height: 2.5em;
}
#item5 {
background-color: aqua;
height: 4em;
}
js
const selectElem = document.querySelector("select");
function changeMasonryFlow() {
const grid = document.getElementById("grid");
const direction = document.getElementById("flow");
const masonryAutoFlow = direction.value === "pack" ? "pack" : "next";
grid.style.masonryAutoFlow = masonryAutoFlow;
}
selectElem.addEventListener("change", changeMasonryFlow);
結果
規範
未找到規範
未找到 css.properties.masonry-auto-flow 的規範資料。
檢查此頁面是否存在問題或為缺少的 spec_url 貢獻內容至 mdn/browser-compat-data。同時確保規範包含在 w3c/browser-specs.
瀏覽器相容性
BCD 表格僅在瀏覽器中載入