A Complete Guide to CSS Grid | CSS-Tricks - CSS-Tricks
- CSS Grid是一种用于创建网格布局的技术。
- grid-template-columns和grid-template-rows用于定义网格的列和行。
- 列和行可以使用长度、百分比或fr单位来表示。
- 网格线可以通过指定名称来命名。
- 网格线可以有多个名称。
- 使用repeat()函数可以简化重复部分的定义。
- fr单位可以将网格大小设置为网格容器的可用空间的一部分。
- fr单位计算时不包括非灵活项的空间。
评论
CSS网格使用“fr”单元可能会在精确的布局设计中引入不可预见的复杂性。“fr”单元的灵活性是网格容器中自由空间的一小部分,不包括不灵活的项目,可能会扭曲可用空间计算。例如,使用“网格模板列:1fr 50px 1fr 1fr;”50px不受“fr”单元的空间分配限制,可能会破坏精确的网格结构。此外,不同的浏览器支持可能会加剧“fr”单元处理中的不一致性,从而破坏跨平台的网格统一性。在需要严格和可预测的单元度量的情况下,开发人员可能会求助于复杂的CSS技术,这与CSSGrid的简单性基本原则相矛盾。因此,尽管CSS网格的“fr”单元在响应式设计中很有用,但在某些情况下,它可能会破坏精度和简单性。
2023-11-24 22:11:37 +0800
尽管CSSGrid在全局页面布局设计方面具有潜力,但由于其对复杂应用程序布局的细致手动输入的依赖,它举步维艰。这种限制阻碍了模块化视图web应用程序的工作流程,因为具有不同关系的元素(如父子或非兄弟元素)之间的结构需要复杂的约束,而CSS网格偶然发现了这些约束。这种情况迫使开发人员寻求JavaScript的帮助来定制他们的布局引擎,这对于自适应布局系统来说是不可取的,会导致效率损失。 此外,CSS网格与各种浏览器的兼容性问题限制了其广泛的实现。在网络开发的波动环境中,只有90%的浏览器覆盖率(可能看起来很高)是有害的,即使用户交互中的微小差异也会引发重大后果。性能方面也需要仔细审查,因为像Firefox这样的特定环境注意到,当多个网格开始发挥作用时,速度会大幅放缓。 由于缺乏对某些功能的全面支持,情况更加恶化,例如,CSS网格在Safari或iOS等流行环境中不完全支持隐式行大小调整,这实际上损害了其通用性。因此,双重挑战依然存在:由于浏览器和设备之间的布局不一致,开发人员要处理中断的工作流程和不利的用户体验。即使是像“fr”单元和“repeat()”表示法这样简化造型过程的函数,也很难掩盖这些问题。 在CSSGrid解决这些技术障碍之前,它成为一个普遍有效的布局工具的历程仍然值得怀疑,尽管它有着很好的功能。现代web开发的复杂性需要自适应、交叉兼容的工具,这些工具足够灵活,能够以最小的手动干扰处理细微的应用程序布局和不可预测的更改,而CSS Grid目前还没有达到这一要求。
2023-11-25 02:15:57 +0800