【问题标题】:How works CSS grid-autoflow?CSS网格自动流如何工作?
【发布时间】:2019-05-11 11:53:05
【问题描述】:

我遇到的问题是我不明白隐式网格是如何工作的。我阅读了文档、MDN 和其他一些资源。但是有一个悬而未决的问题。

.grid {
  display: grid;
  grid-template: repeat(2, 100px) / repeat(6, 1fr);
  grid-gap: 1rem;
  font-size: 2rem;
}

.grid__item {
  background-color: #BDBDBD;
}

.grid__item--1 {
  grid-row: 1 / -1;
}

.grid__item--5 {
  grid-row: 1 / -1;
}
<div class="grid">
  <div class="grid__item grid__item--1">1</div>
  <div class="grid__item grid__item--2">2</div>
  <div class="grid__item grid__item--3">3</div>
  <div class="grid__item grid__item--4">4</div>
  <div class="grid__item grid__item--5">5</div>
  <div class="grid__item grid__item--6">6</div>
</div>

结果如下:

为什么第五个区块先于第二个?

代码https://jsfiddle.net/serhioses/51do02xa/

【问题讨论】:

    标签: css css-grid


    【解决方案1】:

    你想要的定义在in this part of the specification 我们第一次拥有的地方:

    1. 处理锁定到给定行的项目。

    对于每个具有确定行位置的网格项(即,grid-row-start grid-row-end 属性定义了一个确定的网格位置),按顺序修改的文档顺序:

    然后

    1. 定位剩余的网格项。

    因此,基本上我们将具有显式位置的项目放置在行内(grid-row-startgrid-row-end 都应该与 auto 不同),然后考虑上述规范中描述的算法,我们放置另一个。

    即使你修改了顺序也会得到同样的结果:

    .grid {
      display: grid;
      grid-template: repeat(2, 100px) / repeat(6, 1fr);
      grid-gap: 1rem;
      font-size: 2rem;
    }
    
    .grid__item {
      background-color: #BDBDBD;
    }
    
    .grid__item--1 {
      grid-row: 1 / -1;
    }
    
    .grid__item--5 {
      grid-row: 1 / -1;
      order:100;
    }
    <div class="grid">
      <div class="grid__item grid__item--1">1</div>
      <div class="grid__item grid__item--2">2</div>
      <div class="grid__item grid__item--3">3</div>
      <div class="grid__item grid__item--4">4</div>
      <div class="grid__item grid__item--5">5</div>
      <div class="grid__item grid__item--6">6</div>
    </div>

    【讨论】:

    • 如果我将1 / -1 更改为span 2,则项目将被隐式定位。我说的对吗?
    • @СергейМирошник 是的,因为 grid-row-end 将是自动的,不再显式...开始和结束都需要显式
    • @СергейМирошник span 2 意思是 grid-row-start:span 2grid-row-end:auto
    • 谢谢!对我很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    相关资源
    最近更新 更多