在我目前的项目中,我有大量的部分,每个部分有一到两行,从2到15列不等,等宽.相同 colored颜色 的单元格放置在同一列中.分区的定位如下所示:

enter image description here

为了实现上述布局,我使用了GRIDBOX.我接近了解决方案,但第二排总是向左对齐.

.container {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(0px, 1fr));
  gap: 5px 10px;
  background-color: steelblue;
}

.field {
  background-color: black;
  box-shadow: inset 0px 0px 2px #ffffff;
  height: 20px;
  color: white;
  text-align: center;
}

.second-row {
  grid-row-start: 2;
}


/* colours */

.colour-black {
  background: black;
}

.colour-blue {
  background: blue;
}

.colour-yellow {
  background: yellow;
}

.colour-red {
  background: red;
}

.colour-orange {
  background: orange;
}

.colour-purple {
  background: purple;
}

.colour-green {
  background: green;
}

.colour-brown {
  background: brown;
}

.colour-violet {
  background: violet;
}
<div class="container">
  <div class="field colour-black">1</div>
  <div class="field colour-blue">2</div>
  <div class="field colour-blue second-row">3</div>
  <div class="field colour-green">4</div>
  <div class="field colour-brown">5</div>
  <div class="field colour-orange">6</div>
  <div class="field colour-purple">7</div>
  <div class="field colour-red">8</div>
  <div class="field colour-red second-row">9</div>
  <div class="field colour-violet">10</div>
</div>

需要注意的是:

  • 相同 colored颜色 的单元格最多只能为2个.
  • 相同 colored颜色 的单元格总是连续的.
  • CSS解决方案除了添加类之外,不能做HTML更改.
  • 我不能使用脚本,因为这将是我的项目的巨大努力,现在负担不起.
  • 非网格解决方案也很受欢迎.

推荐答案

您只需添加:

  • grid-auto-flow:column; 到容器
  • grid-row:1;到字段

它会奏效的:

.container {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(0px, 1fr));
  gap: 5px 10px;
  background-color: steelblue;
  grid-auto-flow: column; /* added */
}

.field {
  background-color: black;
  box-shadow: inset 0px 0px 2px #ffffff;
  height: 20px;
  color: white;
  text-align: center;
  grid-row: 1;  /* added */
}

.second-row {
  grid-row-start: 2;
}


/* colours */

.colour-black {
  background: black;
}

.colour-blue {
  background: blue;
}

.colour-yellow {
  background: yellow;
}

.colour-red {
  background: red;
}

.colour-orange {
  background: orange;
}

.colour-purple {
  background: purple;
}

.colour-green {
  background: green;
}

.colour-brown {
  background: brown;
}

.colour-violet {
  background: violet;
}
<div class="container">
  <div class="field colour-black">1</div>
  <div class="field colour-blue">2</div>
  <div class="field colour-blue second-row">3</div>
  <div class="field colour-green">4</div>
  <div class="field colour-brown">5</div>
  <div class="field colour-orange">6</div>
  <div class="field colour-purple">7</div>
  <div class="field colour-red">8</div>
  <div class="field colour-red second-row">9</div>
  <div class="field colour-violet">10</div>
</div>

Html相关问答推荐

使用tauri构建的Next.js应用程序不显示我的404页面

为什么从输入步骤中的扣减不能按预期进行?

CURL邮箱中的图像不能调整其大小

需要关于HTML的建议

我无法从带Angular 的Bootstrap 5中的表单中获取数据

HTMLTag属性内的svelte+TS类型声明

如何从多个TO中获取一个范围标记以溢出其父标记

在屏幕上每行 css 中的特定列居中

如何检测输入字段是否没有必填且没有占位符?

如何将内容放置在侧边栏旁边?

如何只为 Navbar 中的一个元素提供动画,其余元素没有使用 css 的动画

如何在 Flex 对齐内容框下显示隐藏按钮和文本

调整窗口大小时文本重叠导航栏

单击按钮时更改字体真棒图标

如何使 Shiny 中的 selectInput Select 扩展到井面板之外或以其他方式使它们更容易被用户看到?

如何使我的下拉菜单响应?

鼠标悬停时切换 colored颜色 的双色链接

按部分划分的表行带

html元素可以被css跳过吗?

所有幻灯片上的 Quarto RevealJS 标题