【外评】请帮助我们实现 CSS grid 布局 Level 3,又称“砖石 Masonry”布局
内容提要
CSS网格第3级,也称为“砌体”布局,允许创建类似砖块或瀑布的堆叠网格布局。它为不同内容的纵横比和自然内容分布提供了灵活性。本文探讨了将砌体与CSS网格结合的好处和潜力,以及其整合的持续争论。鼓励网页设计师和开发人员参与讨论并分享他们的意见和想法。
延伸解读
Masonry布局的争议焦点
关于Masonry布局是否应作为CSS Grid的一部分,存在明显分歧。苹果等支持者认为,将其整合到Grid中可继承子网格、轨道跨度等强大功能,并保持布局模型统一。反对者则主张独立的display: masonry类型,认为Masonry本质是一维排列,与二维网格不同,且独立类型可简化实现、避免性能陷阱。这场争论直接影响标准制定和浏览器支持进度。
CSS Grid Level 3的核心机制
CSS Grid Level 3的核心是提供一种关闭行的机制,通过grid-template-rows: masonry(或未来可能更名的值)实现。这允许创建仅由列组成的列式网格,内容按砖石模式堆叠,无需JavaScript。结合Grid Level 1和2的功能,如灵活列定义、子网格和显式放置,开发者能构建高度动态的布局,适应不同屏幕尺寸,且无需媒体查询。
对开发者的实际影响
若Masonry成为CSS Grid的一部分,开发者可继续使用熟悉的Grid属性,如grid-template-columns和gap,并利用子网格对齐内容,实现更复杂的布局。若作为独立display类型,可能仅支持对称列,限制创意。目前,Safari技术预览版和Firefox Nightly已支持实验性实现,开发者可提前测试并提供反馈,以影响标准走向。
命名与未来方向
当前值'masonry'可能并非最终名称,因其隐喻性强且不易理解。CSS工作组正在讨论替代方案,如'waterfall'或'off',以更直接描述'关闭行'的机制。命名争议反映了对功能本质的不同理解。开发者可通过参与讨论,帮助确定更直观的语法,推动标准尽快落地。
Q&A
什么是CSS网格第3级布局?
CSS网格第3级布局,也称为“砌体”布局,允许创建类似砖块或瀑布的堆叠网格布局,支持不同长宽比的内容。
砌体布局的优势是什么?
砌体布局允许不同长宽比的内容,避免裁剪或截断,符合自然阅读顺序,并能在底部懒加载内容。
Mozilla和苹果在砌体布局方面做了什么?
Mozilla在2020年首次提出CSS中的砌体布局机制,苹果在2022年开始在Safari技术预览版中实施CSS网格第3级。
CSS网格如何支持砌体布局?
CSS网格通过定义网格列和使用grid-template-rows: masonry来实现砌体布局,允许内容灵活排列。
关于砌体布局的争议是什么?
关于砌体布局是否应成为CSS网格的一部分存在争议,有人认为它应作为独立的display类型,而另一些人则支持将其纳入CSS网格。
网页设计师如何参与砌体布局的讨论?
网页设计师和开发人员被鼓励参与讨论,分享他们对砌体布局的看法和使用案例,以推动这一网络标准的发展。