【发布时间】:2020-07-22 18:49:38
【问题描述】:
我有基于已知元素的网格模板区域,但并非所有元素都可以从数据库中获取。如果我没有从数据库中得到任何东西,那么我就不会渲染 html 元素,我会得到一个带有间隙的空“虚线”行。见附图,空行位于蓝色框下方。是否可以隐藏未使用的区域或消除其中的间隙?
*{
margin: 0;
padding: 0;
}
.name {
grid-area: name;
}
.lastname{
grid-area: lastname;
}
.phone {
grid-area: phone;
}
.wrapper {
display: grid;
grid-gap: 20px;
grid-template-areas:
'name name name lastname lastname lastname'
'somethingelse somethingelse somethingelse . . .'
'phone phone phone phone phone phone'
'email email email email email email';
}
<div class="wrapper">
<div class="field name">
<div class="titile">Name</div>
<div class="description">Antony</div>
</div>
<div class="field lastname">
<div class="titile">Last name</div>
<div class="description">Lastnamed</div>
</div>
<div class="field phone">
<div class="titile">Phone number</div>
<div class="description">123 456 789</div>
</div>
</div>
与我的问题无关
This 问题与我的无关,因为我没有空项目。我有空行,没有带间隙的 html 项目
【问题讨论】:
-
我对 CSS 网格一无所知,但看起来您可以为行和列使用不同的值。
gap: 5px 10px;。或row-gap: 5px;和column-gap: 10px; -
投票重新开放 - 很清楚。并且不同于感知到的重复。
-
一个月前我遇到了同样的问题。我没有空边框,因为我没有渲染我没有从数据库中获取的块(我使用 Angular 的 *ngIf 来不渲染空的块),所以只有多余的间隙会导致问题。我最终没有使用网格间隙,我只是在块中添加了右边距和底部边距,所以我只有一个“间隙”,即块之间的边距。现在还可以,但是有“可折叠网格间隙”会很好:)
-
但我会等待几天的解决方案(如果解决方案可以的话)????
-
这很有趣,我在文档和编辑草稿中写了一点,我没有看到任何与渲染未跟踪区域名称相关的内容。我猜它的实现方式是在模板中给出 area-name,即使没有引用它的类,也会对其进行标记并呈现它。