justify-items在CSS Grid中不起作用

时间:2017-08-21 21:42:46

标签: html css css3 css-grid

我是一个CSS网格,我试图将justify-items属性设置为start

这个(或与之相关的任何其他属性)都不起作用,在我的文本编辑器(原子)中,它显示为灰色,通常表示错误。

我已经查看了规范,这个属性肯定是规范的一部分,甚至找到了它的视频教程。

当我使用它虽然它不起作用但我无法理解为什么。

当我将代码复制到codepen时,它仍然无效。

此处的代码:https://codepen.io/emilychews/pen/EvLPgJ



.gridwrapper {
  background: #e6e6e6;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-auto-rows: 100px;
  grid-row-gap: 10px;
  grid-column-gap: 10px;
  justify-items: start; /* THIS LINE ISN'T WORKING */
  align-items: stretch;
}

.gridwrapper div:nth-child(1) {
  grid-column: 1 / 4;
}

.gridwrapper div:nth-child(6) {
  grid-column: 1 / 3;
}

.gridwrapper div {
  padding: 1em;
  background: red;
  border: white;
  width: 100%;
  color: white;
  box-sizing: border-box;
}

.gridwrapper div:nth-child(odd) {
  background: blue;
}

<div class="gridwrapper">
  <div class="grid double-col double-row">1</div>
  <div class="grid">2</div>
  <div class="grid">3</div>
  <div class="grid">4</div>
  <div class="grid">5</div>
  <div class="grid">6</div>
  <div class="grid">7</div>
  <div class="grid">8</div>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:4)

justify-items属性通过在列(而不是整个容器)中分配可用空间来对齐网格项。

但是,在这种情况下,没有可用空间,因为每个项目占据了列的整个宽度。

.gridwrapper div { width: 100% }

删除该规则后,justify-items可以使用。

以下是一个更完整的解释:

revised codepen

.gridwrapper {
  background: #e6e6e6;
  display: grid;
  grid-template-columns: repeat(8, 25px); /* adjustment; otherwise 1fr... */ 
  grid-auto-rows: 100px;                  /* all free space */
  grid-row-gap: 10px;
  grid-column-gap: 10px;
  justify-content: end; /* adjustment */
  align-items: stretch;
}

.gridwrapper div:nth-child(1) {
  grid-column: 1 / 4;
}

.gridwrapper div:nth-child(6) {
  grid-column: 1 / 3;
}

.gridwrapper div {
  padding: 1em;
  background: red;
  border: white;
  /* width: 100%; */
  color: white;
  box-sizing: border-box;
}

.gridwrapper div:nth-child(odd) {
  background: blue;
}
<div class="gridwrapper">
  <div class="grid double-col double-row">1</div>
  <div class="grid">2</div>
  <div class="grid">3</div>
  <div class="grid">4</div>
  <div class="grid">5</div>
  <div class="grid">6</div>
  <div class="grid">7</div>
  <div class="grid">8</div>
</div>