CSS 网格 Angular |不要在宽度上平均分配网格项目
CSS Grid with Angular | Don't distribute grid items equally on width
我有一个包含行和列的应用程序。我可以动态删除行。当我删除它们时,其他项目会在网格的宽度上均匀分布。
现在我想要类似 flex 的东西,但带有网格。网格项目应该与旁边的下一个项目有边距。 Like that。并且不会在整个宽度上分布。
CSS
.column {
padding: 10px;
margin: 10px 0;
display: grid;
grid-auto-flow: column;
.row-item {
text-align: center;
display: grid;
grid-auto-rows: 25px;
grid-row-gap: 10px;
width: 9vw;
}
}
HTML
<div class="column">
<ng-container *ngFor="let jS of journeyStepDisplay">
<div *ngIf="jS.display" class="row-item">
<div class="column-item header">
<p>{{ jS.name }}</p>
</div>
</div>
</ng-container>
</div>
您必须为每个项目声明宽度。
<div class="column">
<div class="row-item">
<div class="column-item header">
<p>ciao</p>
</div>
</div>
<div class="row-item">
<div class="column-item header">
<p>ciao2</p>
</div>
</div>
<div class="row-item">
<div class="column-item header">
<p>ciao3</p>
</div>
</div>
</div>
.column {
width: 100%;
display: grid;
grid-template-columns: 150px 150px 150px 150px;
grid-template-rows: auto;
}
.row-item {
text-align: center;
}
here 有用的指南。
(我没有使用 angular 中的指令,但你可以添加它)
如果要分发的网格项的宽度最小 and/or 最大,则可以使用不同网格属性的组合来获得所需的结果,例如
grid-template-columns: repeat(auto-fit, minmax(100px, 100px));
在下面的示例中,我们有一个网格,其中项目将均匀分布,min/max 宽度为 100 像素。如果它们不能放入该行,将插入一个新行。
.container {
height: 200px;
width: 600px;
gap: 5px;
border: 2px solid red;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 100px));
grid-template-rows: auto;
padding: 10px;
}
.box {
border: 2px solid blue;
}
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
我有一个包含行和列的应用程序。我可以动态删除行。当我删除它们时,其他项目会在网格的宽度上均匀分布。
现在我想要类似 flex 的东西,但带有网格。网格项目应该与旁边的下一个项目有边距。 Like that。并且不会在整个宽度上分布。
CSS
.column {
padding: 10px;
margin: 10px 0;
display: grid;
grid-auto-flow: column;
.row-item {
text-align: center;
display: grid;
grid-auto-rows: 25px;
grid-row-gap: 10px;
width: 9vw;
}
}
HTML
<div class="column">
<ng-container *ngFor="let jS of journeyStepDisplay">
<div *ngIf="jS.display" class="row-item">
<div class="column-item header">
<p>{{ jS.name }}</p>
</div>
</div>
</ng-container>
</div>
您必须为每个项目声明宽度。
<div class="column">
<div class="row-item">
<div class="column-item header">
<p>ciao</p>
</div>
</div>
<div class="row-item">
<div class="column-item header">
<p>ciao2</p>
</div>
</div>
<div class="row-item">
<div class="column-item header">
<p>ciao3</p>
</div>
</div>
</div>
.column {
width: 100%;
display: grid;
grid-template-columns: 150px 150px 150px 150px;
grid-template-rows: auto;
}
.row-item {
text-align: center;
}
here 有用的指南。 (我没有使用 angular 中的指令,但你可以添加它)
如果要分发的网格项的宽度最小 and/or 最大,则可以使用不同网格属性的组合来获得所需的结果,例如
grid-template-columns: repeat(auto-fit, minmax(100px, 100px));
在下面的示例中,我们有一个网格,其中项目将均匀分布,min/max 宽度为 100 像素。如果它们不能放入该行,将插入一个新行。
.container {
height: 200px;
width: 600px;
gap: 5px;
border: 2px solid red;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 100px));
grid-template-rows: auto;
padding: 10px;
}
.box {
border: 2px solid blue;
}
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>