Items that span all columns/rows using CSS grid layout

后端 未结 2 945
逝去的感伤
逝去的感伤 2020-12-01 14:08

With the CSS Grid Layout Module soon shipping in Firefox and Chrome, I thought that I\'d try to get a handle of how to use it.

I\'ve tried to create a simple grid wi

相关标签:
2条回答
  • 2020-12-01 14:10

    I had the same situation and found a clean solution.

    Instead of using a huge row span value, try:

        grid-column: 1/-1;
    

    As negative number counts from the right, this code specifies the grid-column to the end of the last column.

    Note: In case this doesn't apply, check Jonny Green's solution in the below comment.

    0 讨论(0)
  • 2020-12-01 14:27

    You might use a hudge value of row to span (at least as much you believe maximum of rows could be) :

    grid-row: 1 / -1; 12/19 , still not working in FF.

    #container {
      display: grid;
      grid-auto-flow: column;
      grid-auto-rows: auto;
      grid-template-columns: [left] 4rem [right] 1fr;
      margin: 0rem auto;
      max-width: 32rem;
    }
    #a {
      background: lightgreen;
      grid-column: left;
      grid-row-start: 1;
      grid-row-end: span 1000;/* hudge value ... will at least span so many rows */
      justify-self: center;/* ? what did you mean here ? */
      /* did you mean : */
      display:flex;
      align-items:center;
    }
    #b {
      grid-area: auto / right;
      background: yellow;
    }
    #c {
      grid-area: auto / right;
      background: pink;
    }
    #d {
      grid-area: auto / right;
      background: lightskyblue;
    }
    #e {
      background: plum;
      grid-area: auto / right;
    }
    <div id="container">
      <div id="a">a</div>
      <div id="b">b</div>
      <div id="c">c</div>
      <div id="d">d</div>
      <div id="e">e</div>
    </div>

    or did you mean:

    #container {
      display: grid;
      grid-auto-flow: column;
      grid-auto-rows: auto;
      grid-template-columns: [left] 4rem [right] 1fr;
      margin: 0rem auto;
      max-width: 32rem;
    }
    #a {
      background: lightgreen;
      grid-column: left;
      grid-row-start: 1;
      grid-row-end: span 1000;/* hudge value ... will at least span so many rows */
      align-self: center;
      justify-self:center
      }
    #b {
      grid-area: auto / right;
      background: yellow;
    }
    #c {
      grid-area: auto / right;
      background: pink;
    }
    #d {
      grid-area: auto / right;
      background: lightskyblue;
    }
    #e {
      background: plum;
      grid-area: auto / right;
    }
    <div id="container">
      <div id="a">a</div>
      <div id="b">b</div>
      <div id="c">c</div>
      <div id="d">d</div>
      <div id="e">e</div>
    </div>

    Here is a codepen to play with live.

    0 讨论(0)
提交回复
热议问题