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 表格仅在浏览器中加载