我正在为新的响应式布局测试CSS网格,但是包装时遇到了问题。

我有一个导航栏,其标题应向左推送,而4个按钮应向右推送。现在的问题是使用:

grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))

按预期制作5个间隔均匀且响应迅速的网格单元。问题是我希望按钮单元格明显小于标题。因此,我要的不是8fr 1fr 1fr 1fr 1fr,而是1fr 1fr 1fr 1fr 1fr。我如何做到这一点,同时又保持使用重复自动拟合的环绕/响应特性?

说明问题的Codepen示例:https://codepen.io/johnpyp/pen/ZJxdYK

.grid {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.grid>* {
  align-text: center;
  background-color: lightgreen;
  height: 200px;
}
<div class="grid">
  <div>I want this to be 8fr, but it is 1fr like the rest.</div>
  <div>1fr</div>
  <div>1fr</div>
  <div>1fr</div>
</div>

最佳答案

您可以告诉第一个网格元素跨越8列:

.grid > div:first-child {
  grid-column: span 8;
}

https://codepen.io/anon/pen/JyLQRB?editors=1100

关于html - 使用CSS网格使多个不同宽度的列换行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45799636/

10-12 12:36