讨论:如果无论如何都必须编写回退,为什么还要使用新的 CSS 功能?

Discussion: Why use new CSS features if you have to write fallbacks anyway?

我和我的 CTO 就使用 CSS Grid 进行了一次对话,我听到最多的问题是“为什么要使用 grid,如果我们无论如何都必须编写 flexbox 回退,那么旧浏览器不支持它?我们为什么不直接用 flexbox 构建呢?”

这让我开始思考。 CSS Grid 对我来说的一大优势是编写更少的代码。但如果我必须编写回退,我实际上是在编写网格代码和 flexbox 代码,这是更多的工作。所以我猜这个论点有点道理?

你会怎么回答?

这里有一些理由。

  • 您可以在设计方面做得更多。想一想您需要实施的所有解决方法,以便拥有像 100vh 这样简单的东西...如果您的团队中有您,您的设计师会很高兴。
  • 很多管道胶带解决方案,见上文。
  • 新功能使您的代码更好,维护会更好,您的代码通常会更干净。这实际上意味着该功能的工作更少。
  • 性能,支持新功能的浏览器将使用更少的代码,对于每一个新功能来说都不是这样。
  • 更多使用回退解决方案,是的,这可能是真的。但是,如果您总是为相同的功能编写相同的后备解决方案,那么您做错了什么,在网上搜索,可能已经有一个解决方案,如果不是在内部制作自己的解决方案并在其他项目中重复使用,那么您将拥有只做一次回退解决方案。
  • 您希望您的开发人员高兴,如果有一种方法可以使用新功能(并且几乎总是有一种方法),您应该使用它。动机之类的东西。
  • 如果 NOT 那么这些功能将永远不会被使用,因为人们会坚持旧的方式,因此浏览器不需要在新版本中实现,因为猜猜看没有人正在使用这些新功能,因此我们不需要它们。但我们都知道我们需要它们。
  • 新功能最终会成为标准(如果我们实际使用它们),您希望拥有已经精通这些新技术的团队,这样您就可以更好地向客户推销自己。

至于网格 css 布局,勾选这个 --> https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement

另外,这种问题更适合Quora或类似的东西,而不是堆栈。