呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态

图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#优质博文 #CSS #前端 #新特性 #浏览器 #实验性功能
Brick by brick: Help us build CSS Masonry

AI 摘要:Chrome 和 Edge 团队宣布 CSS Masonry 布局已在 Chrome/Edge 140 中开放开发者测试。这种新的 CSS 布局模式旨在更有效地创建类似砖块的自适应内容排列,弥补了 CSS Grid、Flexbox 和 Multi-column 的不足。文章详细介绍了 Masonry 的概念、与现有布局的对比、两种正在讨论的语法提案,并提供了如何启用和使用该功能的具体代码示例,鼓励开发者积极测试并提供反馈,以帮助最终确定其 API 设计。

1. 社区动态
发布与反馈征集:Microsoft Edge 和 Google Chrome 团队宣布 CSS Masonry 已在 Chrome 和 Edge 140 中开放早期开发者测试,并强调开发者反馈对完善规范和语法的重要性。
如何测试:详细说明了在 Chromium 浏览器(Chrome 或 Edge 140+)中通过 about:flags 页面启用 "CSS Masonry Layout" 实验性功能的步骤。
2. CSS Masonry 概述
什么是 Masonry:解释了 Masonry 布局模式能够创建类似砖块的紧凑排列,与 CSS Grid、Flexbox 或 Multi-column 不同,它在某个方向上不严格定义轨道,允许内容项自动填充可用空间,特别适用于视觉密集型页面。
现有方案及局限性:指出现有通过 JavaScript 库或 CSS Grid/Flexbox/Multi-column 模拟 Masonry 的方法存在性能问题、代码复杂、维护困难以及无法完美实现 Masonry 特性等局限性。
CSS Masonry 的现状:介绍了 CSS 工作组正在《CSS Grid Level 3》规范中起草 Masonry,并讨论了两种正在考虑的语法提案:独立的 display: masonry 和集成到 CSS Grid 中的 grid-template-*: masonry。
3. 使用 CSS Masonry
创建 Masonry 容器:通过代码示例展示了如何使用 display: masonry 和 grid-template-columns 或 grid-template-rows 来创建列式或行式的 Masonry 容器。
使用默认轨道尺寸:介绍了 Chromium 实现中 Masonry 的新默认轨道尺寸 repeat(auto-fill, auto),允许在不明确定义轨道尺寸的情况下创建美观的 Masonry 布局。
尝试 Masonry 缩写属性:介绍了正在讨论中的 masonry 缩写属性,可用于同时定义 Masonry 方向和轨道定义,简化了语法。
自定义轨道尺寸:展示了 Masonry 在定义不同数量和大小的布局轨道方面的灵活性。
跨越多轨道:说明了内容项可以跨越多个轨道,这对于突出重要内容或实现全宽布局非常有用。
微调项目放置:介绍了 item-tolerance(原名 item-slack)属性,用于控制项目放置的敏感度,使其更好地匹配源顺序或布局需求。
其他可用属性:提到 Masonry 容器可以与 CSS Grid 的其他属性(如 grid-row、grid-column、order 等)结合使用。
4. 反馈与展望
呼吁开发者反馈:再次鼓励开发者通过 demos、源代 码和实际应用来测试 Masonry,并通过评论相关 Issue 或在社交媒体上分享反馈,以帮助塑造最终的 API。
已知限制:列举了当前 Chromium 实现中存在的已知限制,包括密集填充、反向放置、子网格支持、DevTools 支持等,并鼓励开发者报告 Bug。


author Patrick Brosset, Alison Maher Brick by brick: Help us build CSS Masonry  |  Blog  |  Chrome for Developers
 
 
Back to Top