mozilla.org 上的全新 CSS Grid 演示

随着 CSS Grid 在这个春天跨浏览器发布(Firefox 52、Chrome 57 和 Safari 10.1 中已实现。更新:Safari 10.1 随着 iOS 10.3 和 macOS Sierra 10.12.4 的发布在 3 月份发布),Mozilla 的团队希望展示一些关键功能,并让我们的内部设计师和开发者在 mozilla.org 上尝试这项技术。结果是一个 实时演示网站,展示了 CSS Grid 的功能,并提供了指向我们最喜欢的资源的链接。此外,mozilla.org 网页开发人员通过使用 Grid 从头开始构建网站获得了实际操作经验。

Screen capture of CSS Grid demo

事实证明,网络上提供的资源,包括大量示例和说明,在清楚地解释基本知识方面做得非常好,以至于他们能够深入研究并构建网站而无需任何指导。 Jen SimmonsRachel Andrew 都提供了有关如何开始使用网格的出色示例和教程。此外,MDN 包含多个关于使用 CSS 网格的详细指南。

在设计这个项目时,我们牢记以下目标

  • 向开发者和设计师展示 CSS Grid 的潜力。
  • 介绍 Firefox 开发者工具 Grid Inspector,它目前是唯一用于网格的浏览器内开发工具。
  • 在 mozilla.org 上构建一个使用网格布局的页面。
  • 证明 CSS Grid 使任何了解 CSS 的人都能轻松掌握基础知识并创建一个功能页面。(奖励:Mozilla 网页开发团队在过程中玩得很开心!)

Grid 提供了强大的布局功能,在演示网站上,我们希望说明一些关键功能。这个列表并不详尽,但确实展示了一些现在可用的非常有趣的功能。

  • 固定或灵活的网格:您可以使用固定 轨道 大小或使用百分比或 新的 fr 分数单位 创建灵活大小的网格。
  • 放置和对齐项目:您可以使用标准 网格属性 或使用 网格模板区域 将项目放置在网格上的精确位置。项目可以独立于其 HTML 源代码顺序放置。 对齐 功能控制项目放置到网格区域时的对齐方式,以及整个网格的对齐方式。
  • 控制重叠:网格单元格可以包含多个项目,并且可以 跨越 多行和多列。您还可以使用 z-index 进行分层

此外,我们希望展示 Firefox 的 Grid Inspector 工具,它允许您在创建布局或研究 CSS Grid 在行动中的其他示例时,在浏览器中看到网格线。

请查看演示网站,并告诉我们您的想法。我们希望它能帮助您学习并激发您开始使用 CSS Grid。敬请关注更多有关 CSS Grid 的内容以及如何使用它,请查看这里和 MDN

 

关于 Ali Spivak

@alispivak。Ali 是 Mozilla 的开发者生态系统主管,她开发和管理网站的时间比她愿意承认的时间还要长。她热衷于保持网络的开放性,并致力于开发者喜欢的事情(比如 MDN)。

Ali Spivak 的更多文章…


12 条评论

  1. Ralf

    听起来很棒。所有主要浏览器多久才能支持它?BC 怎么样?

    2017 年 3 月 22 日 下午 11:09

    1. Ali Spivak

      Grid 在 Firefox 和 Chrome 的最新版本中默认支持,苹果表示 CSS Grid 将在 Safari 10.1 中提供。

      caniuse 是一个很好的参考,用于跟踪浏览器对 CSS Grid 的支持情况。

      2017 年 3 月 23 日 下午 1:35

  2. Jos Sparreboom

    您的新 CSS Grid 在 Chrome 版本 56.0.2924.76(64 位)以及 Xubuntu v 1704 上不起作用。在 midori 0.5.11 中也不起作用。在 Ubuntu 浏览器中也不起作用。抱歉!

    2017 年 3 月 23 日 上午 8:30

    1. Ali Spivak

      如果您升级到 Chrome 57(几周前发布),则 CSS Grid 默认启用。Grid 在 Xubuntu、midori 或 Ubuntu 浏览器中尚未默认启用。

      2017 年 3 月 23 日 下午 1:30

  3. Johaven Kaindoa

    非常好,我喜欢它。

    2017 年 3 月 24 日 上午 6:30

  4. voracity

    我在使用替换元素(例如图片)时,在 flex(最初遇到问题的地方)和网格布局中都遇到了一个我认为相当严重的错误。几周前我已经报告了这个错误(1344525),但还没有人关注它。

    基本问题是,在列布局中,大小调整的替换元素根据其自然 *宽度* 进行布局。请注意,基于高度的布局在行布局中是正确的,也就是说,如果您旋转整个布局(从列转换为行,并旋转图片),那么它可以完美地工作。

    请查看错误以获取屏幕截图。

    我之所以认为这是一个严重(半紧急)错误,是因为 a)列布局与行布局的行为不同,b)预期行为 *不能* 在没有 JavaScript 的情况下实现(在相反的情况下可以实现错误的行为,不过为什么有人会想要这种行为呢?:))。在等待了 20 年的优秀布局后,我真的不想冒这个风险,让这种错误的行为成为未来 20 年的又一个痛苦…

    2017 年 3 月 25 日 下午 8:37

  5. David

    在演示的“放置和对齐”部分的示例 3 中,显示的项目 [1、2、3、4] 的代码将它们的 align-self 属性分别设置为 [end、start、end、start],而应该是(根据实际使用的显示)[start、end、start、end]。

    2017 年 3 月 26 日 下午 2:02

    1. Craig Cook

      对此表示歉意!该错误已在 https://bugzilla.mozilla.org/show_bug.cgi?id=1349284 中报告,我们已经修复了它,该修复程序应该很快就会推送到生产环境(或者已经推送,取决于您阅读此内容的时间)。

      2017 年 3 月 27 日 下午 1:09

  6. Mason

    看起来 Safari 开始支持网格了!您可以看到它正常工作,而被告知它没有正常工作 :^}

    http://imgur.com/a/SsR15

    2017 年 3 月 30 日 下午 12:42

    1. Ali Spivak

      你说得对,CSS Grid 支持已在 Safari 10.1 中发布。

      2017 年 4 月 7 日 下午 12:55

  7. ffgfgf

    当然 CSS Grid 支持对所有开发人员来说都很重要

    2017 年 4 月 19 日 下午 11:51

  8. george

    这个 CSS 网格太棒了!

    2017 年 4 月 20 日 上午 8:05

本文的评论已关闭。