我们希望从 Grid 中得到什么

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

有一段时间我们觉得 CSS Grid 太棒了。 它在所有主要浏览器中同时快速推出。 现在,随着 Grid 的使用越来越多,我们看到人们希望从 Grid 中获得更多功能。

Michelle Barker 列出了她的愿望(我会在后面发表我的评论)

  • 样式化行和列间隙。 我也听说过直接为网格单元格设置样式的请求,而不是需要在那里放置一个元素并为该元素设置样式。
  • 多个间隙值。 我上周就想要这个功能,有人告诉我使用一个空的列或行而不是间隙。 该列的大小是可以控制的,并且相应地放置内容以将其视为间隙。 还可以,只是对隐式网格不太友好。
  • 自动流模式。 这很聪明。 查看 Michelle 的用例和建议。
  • 使用fr单元的calc()。 这是一个令人费解的问题。 我可以理解想要做类似calc(1fr - 100px)的事情,但剩余的空间不是少了 100px,然后 1fr 重新计算以填充该空间吗? 似乎是无限循环。
  • 纵横比网格单元格。 我怀疑,如果我们获得这个功能,它将是一个通用的纵横比解决方案,适用于任何元素,包括放置在网格上的元素。

Subgrid 也开始被热烈请求,我明白为什么。 在构建我使用 Grid 完成的最后一个页面布局时,我强烈希望能够在子元素中共享整体页面网格线。

Rachel Andrew 大约六个月前在 CSS Grid Level 2:Subgrid 来了中谈到了它的状态。 我不确定它现在处于什么状态,但我认为还没有任何浏览器支持它。(我甚至不确定规范是否在技术上已完成。)

Brad 指出了这里的需求

以及 Ken Bellows 写道

  • 如果我们将 Subgrid 与卡片内的grid-template-areas结合起来(如果你不知道网格区域,请阅读我的上一篇文章,它会让你大吃一惊),复杂的响应式基于卡片的布局将变得微不足道
  • 在两个轴上使用 Subgrid 的前景为我们提供了一种实现相对网格定位的方法,至少对于语义分组的项目而言,就像我上面希望的那样! 将你的内容分组到一个容器中,在网格上定位该容器,使该容器在两个轴上都成为一个 Subgrid,并声明你的轨道相对于 Subgrid 元素的网格位置!
  • 在 Flexbox、Grid、display: contents和 Subgrid 之间,我们最终将拥有编写非常精简、干净、语义化标记所需的一切,基本上没有填充或纯粹的结构元素。 这将极大地有利于可访问性、SEO 以及试图理解你的标记的开发人员!

Eric Meyer 三年前称 Subgrid 为一项基本功能

这就是为什么我和其他网格专家(如Rachel)得出相同的结论:Subgrid 是网格布局的主要组成部分,并且在它从开发者预览状态出现时应该成为任何网格布局实现的一部分。 如果这意味着延迟网格的出现,我认为这是值得的。

当然,每个人仍然想要 原生砌体布局。 ;)