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

使用flexbox(或其他CSS)创建砌体网格

汝宏伯
2023-03-14
问题内容

我想在CSS中使用大小均相同但高度不相同的元素来实现网格效果。我希望下面的元素始终位于底部元素的50px处,无论接下来是什么。

我尝试使用浮点数,但该错误。因此,我尝试使用Flex,但是它仍然无法满足我的要求。

.container
  display: flex
  flex-wrap wrap
  align-content flex-start
  align-items flex-start

问题答案:

Try the new CSS Grid Layout

grid-container {

  display: grid;                                                /* 1 */

  grid-auto-rows: 50px;                                         /* 2 */

  grid-gap: 10px;                                               /* 3 */

  grid-template-columns: repeat(auto-fill, minmax(30%, 1fr));   /* 4 */

}



[short] {

  grid-row: span 1;                                             /* 5 */

  background-color: green;

}



[tall] {

  grid-row: span 2;

  background-color: crimson;

}



[taller] {

  grid-row: span 3;

  background-color: blue;

}



[tallest] {

  grid-row: span 4;

  background-color: gray;

}


<grid-container>

  <grid-item short></grid-item>

  <grid-item short></grid-item>

  <grid-item tall></grid-item>

  <grid-item tall></grid-item>

  <grid-item short></grid-item>

  <grid-item taller></grid-item>

  <grid-item short></grid-item>

  <grid-item tallest></grid-item>

  <grid-item tall></grid-item>

  <grid-item short></grid-item>

  <grid-item tallest></grid-item>

  <grid-item tall></grid-item>

  <grid-item taller></grid-item>

  <grid-item short></grid-item>

  <grid-item short></grid-item>

  <grid-item short></grid-item>

  <grid-item short></grid-item>

  <grid-item tall></grid-item>

  <grid-item short></grid-item>

  <grid-item taller></grid-item>

  <grid-item short></grid-item>

  <grid-item tall></grid-item>

  <grid-item short></grid-item>

  <grid-item tall></grid-item>

  <grid-item short></grid-item>

  <grid-item short></grid-item>

  <grid-item tallest></grid-item>

  <grid-item taller></grid-item>

  <grid-item short></grid-item>

  <grid-item tallest></grid-item>

  <grid-item tall></grid-item>

  <grid-item short></grid-item>

</grid-container>

建立一个块级网格容器。该grid-auto-rows属性设置自动生成的行的高度。在此网格中,每行高度为50px。
该grid-gap属性是一个速记grid-column-gap和grid-row-gap。此规则在网格项目之间设置10px的间距。(不适用于物品和容器之间的区域。)该grid-template-columns属性设置显式定义的列的宽度。该符号定义重复列(或行)的模式。reeat

该 函数告诉网格在 不使容器溢出的情况下尽可能多地排列列(或行)。(这可以创建与Flex布局类似的行为。)auto-fill

flex-wrap: wrap

该minmax()函数为每列(或行)设置最小和最大大小范围。在上面的代码中,每列的宽度最小为容器的30%,最大为
可用的可用空间。的fr单元表示在网格容器中的自由空间的一小部分。相当于flexbox的flex-grow属性。

使用grid-row和span告诉网格项目它们应该跨越多少行。浏览器对CSS网格的支持

Chrome-自2017年3月8日起全面支持(版本57)Firefox-截至2017年3月6日(版本52)全面支持Safari-自2017年3月26日起提供全面支持(版本10.1)Edge-截至2017年10月16日(版本16)全面支持IE11-不支持当前规范;支持过时的版本
这是完整的图片:

Firefox中的超酷网格覆盖功能:在Firefox开发工具中,当您检查网格容器时,CSS声明中有一个微小的网格图标。
单击时,它会在页面上显示网格的轮廓。



 类似资料:
  • 问题内容: 有没有办法利用Bootstrap 4随附的flexbox网格来创建砌体柱布局?在我看来,所有的列都是相等的高度。 问题答案: 这对于标准的Bootstrap 4类几乎是可行的。文档中甚至有一整节关于“证件栏”功能。 从文档中: 只需将CSS包裹在中,就可以使用CSS将 卡片组织成类似于砌体的列。卡是使用列属性而不是flexbox构建的,以便于对齐。卡的排列顺序是从上到下,从左到右。 小

  • 问题内容: 我正在尝试仅使用CSS和flexbox创建水平砌体布局。我遇到的问题是元素之间存在垂直间隙,而没有使用它可以缩小间隙吗? 问题答案: 这是一个使用换行列的选项,但它需要固定的高度。

  • 我想要一个3xN布局在我的移动React Native应用程序,所以像这样的东西: 整个布局,垂直的,将在滚动视图,这样即使它加载的项目超过一个屏幕可以显示,它可以正确地显示它的整体。

  • 问题内容: 扩展这个问题,我接受了一个答案,该答案说在这种情况下 使用查找表或哈希映射 ,因为它是 处理多个条件 的更好的 构造 。 当前构造。 用于存储消息的类。 条件并显示来自上述类的正确消息。 我实际上想知道在这种情况下查找表有什么帮助? 应该如何在Java Hashmap / Hashtable等中实现它,如何具有优势? - - 编辑 - - 我要去@assylias anwer,因为它更

  • 我刚刚开始使用OWL API,以便生成一些使用其他本体的示例。情况是这样的:我有两个本体A和B,它们有很多元素,从其他本体导入。这两个本体是一个标准的一部分,因此它们是密切相关的。我需要生成一个标准的元素示例,它涉及导入这两个本体,并使用和组合来自这两个本体的类和元素,但我不知道如何开始。我尝试过使用API,但我唯一实现的是加载一个本体,获取一些类和属性,并将它们组合成一个新的本体。我也不知道如何