当前位置: 首页 > 知识库问答 >
问题:

我可以在CSS网格中每行有不同的列数吗?

单于善
2023-03-14

null

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px;
  grid-auto-rows: 60px;
  grid-gap: 15px;
}

.col {
  background-color: tomato;
}
<div class="grid">
  <div class="col"></div>
  <div class="col"></div>
  <div class="col"></div>
  <div class="col"></div>
  <div class="col"></div>
</div>

null

这将创建2行,第一行高度为100px,第二行高度为60px。第二行中的2列具有1fr宽度。

是否可以通过CSS网格/FlexBox将第2行的2列水平居中?即。每行的列数不同。

我正试图解决浏览器中CSS网格框架的一个琐碎的使用问题。如果使用FlexBox构建网格,这是很容易实现的。

但是我能用CSS网格实现它吗?

这里是一个我试图实现的代码本演示。

共有1个答案

宫晟
2023-03-14

如果您的行有不同数量的单元格,而这些单元格不是全部布局在单个二维(行和列)空间上,则没有网格。根据定义,网格包含固定数量的行和列,以及跨行和列中的一个或多个的单元格。也许你会有多个异构的网格,每行一个,但这只是破坏了网格的整体点,真的。

如果您的不同行数是对称的或遵循某种模式,那么您可以遵循michael_b的建议,基于公分母构建网格,并以马赛克样式填充网格区域。这与当前的flexbox解决方案一样不简单,但一旦更多的浏览器实现了flexbox碎片化,flexbox应该成为网格之外的明显选择。

 类似资料:
  • 在创建拼花文件时,我们可以在每个行组中使用不同的模式吗?在这种情况下,页脚将合并所有行组中的所有模式,但每个行组的模式将不同。这是公认的拼花格式吗?拼花规范是否清楚地表明模式不能在同一拼花文件中按行组更改? 官方规范对这一部分不是很具体,但当我们以这种方式编写文件时,Spark无法读取。 我尝试编写这样的文件和阅读使用spark.read.parquet和我得到以下错误 <代码>组织。阿帕奇。火花

  • 我正在尝试使用GridLayoutManager构建一个RecyclerView,它每行有一个可变的列计数,如下所示: 同一行中所有项目的宽度之和将始终为屏幕宽度。 我试图重新组织项目列表,按行列表分组,然后每行膨胀一个线性布局。它不太好。 所以我被困住了,没有任何想法。任何帮助都将非常感激

  • 我有一个有3列的网格。问题是第3列比其他两列更宽。都不是 网格-模板-列:重复(自动拟合,最小(33.33%,1fr)); 也不 网格自动列:33%; 工作,因为IE11不支持自动拟合和网格自动列。 在IE11中有没有替代的方法来实现这一点呢?多谢了。

  • 我正在尝试制作一个网格,它有7列,并以所需的行数进行扩展(由后端提供)。所以我的css是这样的: null null 我试图实现的是一个网格,有一个定义的较小的第一行72px,然后所有其他行应该是86px……但它就是不起作用,有没有解决这种情况的办法?使用上面的片段使我的第三行达到73.23px

  • 我是JavaSwing的新手,我必须编写一个如下所示的接口: 它是一个复选框,后跟一个文本字段,然后是一个按钮。不要介意虚线,我添加它们只是为了使“网格”可见,我知道我可以制作一个组件并为复选框、文本和按钮重用,这样布局就简单多了。我只是想了解GridbagLayout的怪癖。 基本上,第一行应该有2列,第二行和第三行应该有6列。为此,我尝试使用GridBagLayout,但结果不是预期的,我不确

  • 问题内容: 我有一个表,其中通过不存在的CSS类通过jQuery显示/隐藏整列: 有了这个DOM,我可以通过jQuery在一行中完成此操作: 这很好用,但是使用未定义的CSS类是否有效?我应该为此创建一个空类吗? 是否有任何副作用或有更好的方法来做到这一点? 问题答案: “ CSS类”是用词不当;是您分配给HTML元素的属性(或就脚本而言的属性)。换句话说,你在你的情况下,“目标”类HTML,CS