当前位置: 首页 > 面试题库 >

Flexbox覆盖的区域,使用网格很难或不可能实现

易阳云
2023-03-14
问题内容

突出强调了Flexbox用于1-D,而Grid用于2-D,但是我还没有找到清楚的解释,为什么不能将Grid用于1-D并替代Flexbox。在我来到最接近的就是

但您也可能会争辩说,像这样的纯一维布局在Flexbox中更为强大,因为Flexbox允许我们更轻松地移动这些元素(例如,将它们全部移动到一侧或另一侧,更改其顺序,将它们均匀地隔开等)。

我将Grid和Flexbox用于基本布局:框在页面上的一般放置以及一些动态的(通常是堆叠的)。美观的(烤面包机,模式,…)通过框架进行管理。
我还没有发现Grid无法立即替换Flexbox的情况 (即没有高级CSS 技巧 或很多代码)。

以上面的引用为例,提到的所有“动作”都可以在Grid中直接使用,通常具有与Flexbox相同的语义。

Flexbox涵盖哪些难以或无法通过Grid管理的基本领域?

编辑:浏览器支持并不重要(我只使用常绿的浏览器,如果需要可以切换)


问题答案:

优势Flexbox

以下是Flexbox在网格(第1级)之前领先的13个领域:

  1. 将包装好的物品居中。 想象一下五个伸缩项目。每行只有四个。第五卷。第五行可以很容易地与对齐justify-content。尝试将第五项居中放置在网格容器中。这不是一件简单的事情。
  1. 包装。 可变长度的柔性物品没有包装问题。尝试获取可变长度的网格项目以进行包装。不可能。
  1. 自动边距。 柔性物品可以在其整个容器中放置,包装和隔开一定距离auto。但是,网格项目仅限于其轨迹,从而大大减少了auto边距的用途。
  1. 最小,最大,默认值–全部合为一体。 设置min-widthmax-width以及默认的width柔性项目是很容易。如何在网格列或行上设置所有三个长度?他们不能。
  1. 粘性页脚/页眉。 用flexbox固定页脚或页眉非常简单容易。
  1. 消耗剩余空间。 一个flex项目可以消耗剩余空间flex-grow。网格项目没有这种功能。
  1. 收缩。 Flex有flex-shrink。网格什么都没有。
  1. 限制动态布局中的列数。 使用flexbox,创建一个环绕的两列网格,在整个屏幕尺寸上保持固定在两列是没有问题的。在电网,尽管有所有这些伟大的功能,例如repeat()auto-fillminmax(),它无法做到的。
  1. 在第一个项目和最后一个项目之间创建空间。 在具有可变列数的网格容器中,添加空的第一列和最后一列并不容易。边距,填充,列和伪元素都有其局限性。使用flexbox非常简单。
  1. 内联级容器的重要优点在某些情况下会丢失。 如果您具有带有动态列数的Grid布局(这意味着您无法设置容器的列数或宽度),那么display: inline-grid它将无法正常工作。所有项目都堆叠在一个列中。这是因为默认设置grid-auto-columns为一列。在至某些情况下,flexbox可以解决该问题。
  1. 获取具有作者定义的网格区域的列以进行包装而无需媒体查询。 假设您有一个两列网格,其中包含已设置位置的网格区域,并且希望该网格在较小的屏幕上自动过渡到单列(第二列包裹在第一列的下方)。使用网格,您将需要媒体查询。在auto-fillauto-fit因为已经指定网格区域的位置功能将无法正常工作。如果要避免媒体查询,flexbox的flex-wrap功能可能会很有用。
  1. column-reverse CSS Grid中没有任何功能。仅将一个规则应用于网格容器,就不可能从底部开始填充项目。但是,使用flexbox可以轻松完成任务flex-direction: column-reverse
  1. resize 网格项目上的属性对轨迹没有影响。除非将列或行轨道设置为auto(基于内容的大小),否则调整网格项的大小将使轨道溢出。由于flexbox没有列和行轨道,因此它可能是一个有用的选择。


 类似资料:
  • 问题内容: 我知道python函数默认是虚拟的。假设我有这个: 我不希望他们能够这样做: 有没有办法防止用户重载roo()? 问题答案: 您可以使用元类: 每当创建子类时,就会调用该元类型的 new 。如果您在场,这将导致错误。仅当没有基类时,它才会接受roo的定义。 您可以通过使用注释来声明哪些方法是最终方法,从而使该方法更加理想。然后,您需要检查所有基准并计算所有最终方法,以查看是否有任何基准

  • 给定一组2D点,我想定义一个多边形,覆盖一定百分比的所有点,同时保持它的面积尽可能小。 我开始想到这样一个算法: 从最接近平均值的2点开始 在所有其他点上循环 添加导致覆盖面积最小的点 重复2和3直到达到所需的百分比 我想这会起作用,但听起来效率很低。我对计算面积的最佳选择是使用凸包的现有实现。我的问题听起来也像一个经典的数学问题,我怀疑有一个scipy函数可能会开箱即用。 什么是解决或近似这个问

  • 我试图将我的项目升级到一些最新版本,但由于项目中的一些依赖项尚未更新,我无法获得空安全性。 我已经求助于sdk版本2.10,同时我更新了所有核心包,解决了所有突破性的更改。一些不推荐的更改(如FlatButton到TextButton,尚未解决)。 我在构建解决方案时遇到了几个问题,在咨询了一些旧的Stack帖子后,我拼凑了gradle文件更新,升级到Android Studio等... 但是,当

  • 我需要一些帮助来估计某种形态学操作(最好使用skimage或scipy image或通常使用python),这些操作可以帮助我隔离由所有边包围的区域(参见Images.)问题是外壳可以有不同的形状和大小。封闭区域的形状和大小也各不相同。图像的例子,其中封闭的(由白色区域)黑色区域需要隔离。 通过隔离,我的意思是获得封闭的黑色区域中的所有像素坐标。 实施例1

  • 问题内容: 我想在CSS中使用大小均相同但高度不相同的元素来实现网格效果。我希望下面的元素始终位于底部元素的50px处,无论接下来是什么。 我尝试使用浮点数,但该错误。因此,我尝试使用Flex,但是它仍然无法满足我的要求。 问题答案: Try the new CSS Grid Layout 建立一个块级网格容器。该grid-auto-rows属性设置自动生成的行的高度。在此网格中,每行高度为50p

  • 我在最新的Android Studio上创建了一个全新的Android项目。我做的第一件事是将`realm'库添加到项目中,方法是将以下内容添加到gradle文件中: 如果我尝试编译,我会得到以下错误: Origine2:C:\users\usmaan.gradle\caches\caches\modules-2\files-2.1\io.realm\realm-android\0.80.3\79