【问题标题】:Why does third css grid column starts with second row in this codepen为什么第三个css网格列从这个codepen中的第二行开始
【发布时间】:2022-11-14 05:53:30
【问题描述】:

链接到代码笔https://codepen.io/Pyoss/pen/ExRXVOZ `

<div class="example_grid">
    <div class="grid-main-element grid-center"></div>
    <div class="grid-element grid-left"></div>
    <div class="grid-element grid-left"></div>
    <div class="grid-element grid-right"></div>
    <div class="grid-element grid-right"></div>
    
    
</div>

`

.example_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 
}

.example_grid>div {
    border: 1px solid white;
}

.grid-left {
    grid-column: 1;
    background-color: red;
}

.grid-center {
    grid-column: 2;
    grid-row-start: 1;
    grid-row-end: 3;
    background-color: yellow;
}

.grid-right {
    grid-column: 3;
    background-color: blue;
}


.grid-element {
    height: 100px;
}

.grid-main-element {
    height: 200px;
}

``

我可以手动分配行和列,但我不明白这种行为背后的逻辑。我预计分配的列会占用可用的最高行,但它会在最右边的列上产生一行顶部偏移。

【问题讨论】:

    标签: css css-grid


    【解决方案1】:

    这是因为默认情况下,网格具有grid-auto-flow: row。它控制自动放置的项目如何流入网格。

    More on this

    如果将grid-auto-flow: row densegrid-auto-flow: column 分配给网格,则右列将从顶行开始。

    例子:

    .example_grid {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-auto-flow: row dense;
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2022-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多