css - CSS网格自动流如何工作?
问题描述
我遇到的问题是我不明白隐式网格是如何工作的。我阅读了文档、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>
为什么第五个区块先于第二个?
解决方案
您想要的内容在我们首先拥有的规范的这一部分中定义:
- 处理锁定到给定行的项目。
对于每个具有确定行位置的网格项(即
grid-row-start
和grid-row-end
属性定义一个确定的网格位置),按照 order-modified 文档顺序:
然后
- 定位剩余的网格项目。
因此,基本上我们将具有显式位置的项目放置在行内(两者grid-row-start
ANDgrid-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>
推荐阅读
- xml - 如何使用 XSLT 从另一个 XML 文档提供属性值?
- javascript - 如果道具发生变化,反应重新评估 useRef
- excel - 在 VBA 过滤器中从 dd mm 切换到 mm dd 的日期
- java - 正确实现所有相等对象的属性
- forms - 如何根据选择字段的 onChange 事件在 vuelidate 中启用所需的验证
- java - 如何在 Java 中进行此 CURL 调用?
- vba - 有没有办法根据值显示文本?
- c# - 如何使用 DispatcherTimer 显示偶数/奇数秒
- r - 将 95% 置信区间添加到 SITAR 平均增长曲线
- selenium - 如何获取最深文本的文本?