【发布时间】:2018-01-23 18:11:53
【问题描述】:
我正在尝试使用 CSS Grid 作为 2d 替代方案来填充我正在创建的小型测试博客的空间。我遇到了一个关于定位的小问题。
首先,由于它是一个博客,我不太确定内容将在文章中保留多长时间。因此我不能使用设置定位来修改布局。
我目前的看法是:
但是,我希望视图看起来像:
目前,我的代码结构如下:
CSS
.articles {
margin: 20px;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 1em;
}
article {
align-self: start;
}
HTML
<div class="articles">
<article>lorem ipsum...</article>
<article>lorem ipsum...</article>
<article>lorem ipsum...</article>
</div>
由于较大的(第二)段落,似乎 align-self 正在通过删除空内容来正常工作。然而,第三段保持在其当前的静态位置,而不是移动到现在空白的位置,align-self: stretch 本来应该是。
我不太确定我可以尝试解决这个问题。
【问题讨论】:
-
@MiltoxBeyond 我明白了,也许这不适用于 CSS Grid。
-
CSS Grid 可以比 Flexbox 做得更好,所以请耐心等待,知道如何发布答案的人......如果您选择沿着这条路走,Flexbox 将需要在父级上固定高度,大多数人不希望它是动态的
-
也只是提一下。 @TylerH,您将代码更改为 sn-p 的最后一次编辑对该问题无效。显示一个 sn-p 不会让我的问题暴露出来,并且会错误地理解我的问题是什么。请停止编辑我的帖子以帮助您取得成就,尤其是在没有完全理解问题的情况下。
-
@TylerH 是的,这是一个糟糕的 sn-p,甚至没有显示问题。
-
对于网格元素通过列或行“拉伸”,您需要通过 CSS 告诉它们跨越这么多行或列。它不是靠自己完成的。您可能希望将 masonry javascript 库用于这种行为 :( 不是 flex 或 grid 自己这样做的