【问题标题】:CSS Grid column alignmentCSS 网格列对齐
【发布时间】:2017-11-06 12:22:16
【问题描述】:

我需要将列对齐到中心,但没有运气。我尝试了 justify-content、justify-items、align-items,但没有任何效果。

.row {
  display: grid;
  grid-template-columns: repeat(12,1fr);
  justify-content: center;
  align-items:center;
}

.col-2 {
  grid-column-start: span 2;
}

.col-4 {
  grid-column-start: span 4;
}

这是基本演示 - https://jsfiddle.net/k0apdg5s/1/

编辑: 我真正想要实现的是像这样将最后两个列对齐到网格中心 - http://jsfiddle.net/cez04sw4/2/

【问题讨论】:

  • 在您的演示小提琴中:您是否需要第二行中的项目相对于容器居中?
  • 您能否具体说明您的问题。你想达到什么目标?
  • 为什么不只是 margin: 0 auto; ?
  • 你为什么使用像 flex 这样的 CSS 网格?这不是它的本意。 Grid 是对 flex 的附加,而不是替代。

标签: css css-grid


【解决方案1】:

再次作为一个完整的答案:你为什么使用像 flex 这样的 CSS 网格?这不是它的本意。 Grid 是对 flex 的补充,而不是替代。

这里的正确答案是使用display: flex; 而不是display: grid;。您可以在弹性容器周围使用网格,或将justify-itemsjustify-self 用于相同区域中的项目。

这是一个正确的工作示例:

img {
  max-width: 100%;
  display: block;
}
.row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items:center;
}

.col-2 {
  width: 16.66%; /* 100/6 */
}

.col-4 {
  width: 33.33%; /* 100/3 */
}
<div class="row">
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
  <div class="col col-2">
    <img src="//placehold.it/240x240" />
  </div>
</div>

【讨论】:

  • 由于 grid-auto-flow:dense; 我想使用网格功能,演示中没有。 jsfiddle.net/cez04sw4/2 - 这是完整的演示,我想将最后两个列对齐到中心,但我不知道这样的网格是否可行。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 2018-12-29
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
相关资源
最近更新 更多