gpt4 book ai didi

css - 如何跨越到隐式网格中的最后一列?

转载 作者:行者123 更新时间:2023-12-04 14:36:58 31 4
gpt4 key购买 nike

我希望一个元素从第一列开始并在最后一列结束,无论有多少列。

它应该像这样工作:

item {
grid-column-start: 1;
grid-column-end: -1;
}

according to MDN:

Contributes the nth grid line to the grid item’s placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid.



所以这只适用于 显式网格 ?为什么它不能在隐式网格上工作?

最佳答案

Why shouldn't it work on implicit grids?



因为我们可以很容易地在未定义的 case1 或循环依赖上运行。如果它是隐式网格,这意味着我们需要首先放置所有其他元素来识别隐式网格,然后我们放置我们的元素但是如果我们放置我们的元素,我们将获得另一个隐式网格,所以从技术上讲,没有隐式网格你无法知道放置元素。

隐式网格背后的想法是在放置已知位置的元素后,自动放置没有为其放置定义任何内容的元素。

您可以通过对行或列使用一些技巧来克服这个问题:

Stretch an element to the end of the automatically calculated grid, not just the explicit grid

Forcing a column to be empty in a responsive grid layout

1 一个基本的例子:

.grid {
display: grid;
grid-template-columns: 50px;
grid-gap: 5px;
grid-auto-flow: column;
grid-auto-columns:50px;
}

.grid>span {
height: 50px;
background: red;
}

.grid>span.place {
grid-column: 1 / -1;
background: blue;
}
<div class="grid">
<span></span>
<span class="place"></span>
</div>


从逻辑上讲,我们首先将蓝色跨度放置在显式网格中,然后我们自动放置红色跨度以获得 2 列的隐式网格。

考虑到你的逻辑,我有以下情况:
  • 我改变了蓝色的位置,所以它需要两列,将红色移动到第三列。我再次重复(无限循环)
  • 我改变了蓝色的位置,所以它需要两列并与红色一列重叠(不合逻辑和直观)
  • 我没有放置蓝色,但我首先放置红色,然后我将红色重叠(不合逻辑),或者将蓝色放在该列中并将红色推到另一个列中,然后我回到(1)
  • 关于css - 如何跨越到隐式网格中的最后一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56932412/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com