html - CSS 网格 - 重叠网格线号
问题描述
抱歉,如果这个问题已经被问过,但我找不到任何解决这个问题的帖子。
我的网格有三个项目:红色、绿色和蓝色。(见 JSFiddle)
Red 有一个 row-start 属性 via grid-area: 6
,因此它具有优先级并放在首位。然后将蓝色和绿色按其源顺序放入网格中。结果如下所示:
grid-area: 6;
我不明白这个结果,因为尽管指定了 6 的行开始(通过),但它看起来好像红色已放置在第 2 行。如果您在 Firefox devtools 中检查网格,您会看到第 2-6 行的网格行号重叠:
根据MDN,为网格区域指定一个整数值
将第 n 条网格线贡献给网格项的位置。如果给定一个负整数,则它会从显式网格的结束边缘开始反向计数。如果名称以 a 形式给出,则仅计算具有该名称的行。如果没有足够的具有该名称的线,则假定所有隐式网格线都具有该名称,以便找到该位置。
最后一句话对我来说没有意义-我将其读作“由于没有足够的名称为 '6' 的行存在,因此假设 3-6 中的所有隐式网格线都具有该名称,以便找到此名称位置”。算法不应该隐式创建第 3-6 行,然后将红色 div 放在第 6 行第 6 行,第 2-5 行有空格吗?
这是我期待的结果:
我通过设置获得了这个grid-template-rows: repeat(6, 100px);
。(但grid-template-rows: repeat(6, 1fr);
没有用,不完全确定为什么。)
解决方案
您的行没有大小,因此第 6 行与第 2、3、4、5 行重叠。
#grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: repeat(6, 100px);
}
#red {
grid-area: 6;
background-color: red;
}
#green {
background-color: lightgreen;
}
#blue {
background-color: blue;
}
div {
height: 100px;
width: 100px;
}
<div id='grid'>
<div id='red'></div>
<div id='green'></div>
<div id='blue'></div>
</div>
推荐阅读
- r - 视图函数错误:.External2(C_dataviewer, x, title) : 无法启动数据查看器
- java - BigInteger 在 spring mongo 中保存为 String
- android - 无法连接到 Azure Devops Maven 存储库
- angular - 在 ngOnInit - Angular 11 中订阅的测试组件
- debian - 出乎意料,我无法与我的 Nextcloud 同步(快照)
- java - setEnterTransition 只显示 Fade
- vue.js - vuejs:在列中拆分项目列表
- c++ - 如何实例化对象并让它们在其范围之外仍然可用?(例如在循环中实例化一个对象)
- python - 访问变量形成不同的py函数Python
- php - 获取 XML 子节点 / PHP XPATH 的值