html - 有效地将 *ngFor 与网格 CSS 结合使用

标签 html css angular ngfor

我想根据未知行生成网格。网格很简单,只有两列。一列包含行标签,另一列包含一些 UI 元素,例如复选框。

我能够完成这项工作的唯一方法是通过每个循环生成一个新网格(参见下面的示例)。我想用一个 ngFor 和一个 Grid 来完成这个。

澄清一下,每个标签必须与它们各自的复选框位于同一行。

例子 :

    <div *ngFor="let row of rows">
      <div class="popup-grid">
        <div>
          {{row.label}}
        </div>
        <div>
          <p-checkbox  "angular interactions/events here">
          </p-checkbox>
        </div>
      </div>
   </div>

最佳答案

这就是如何有效地将 ngFor 与 CSS 网格一起使用。您可以使用 ng-container防止 *ngFor 将 div 插入到 dom 中。这将防止在每次循环时生成新网格。

The Angular ng-container is a grouping element that doesn't interfere with styles or layout because Angular doesn't put it in the DOM.



然后包围ng-container带有 display: grid; 的 div .然后您可以使用 grid-template-columns 规则以定义所需的列数。 Grid 会自动放置行。检查下面的示例代码。

HTML:
<div class="grid">
    <ng-container *ngFor="let row of data">
        <label>{{row}}</label>
        <div><input type="checkbox"></div>
    </ng-container>
</div>

CSS:
.grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Create 2 columns and auto-place rows */
}

关于html - 有效地将 *ngFor 与网格 CSS 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59936188/

相关文章:

javascript - 在 Angular Material 中的 mat-multiple select 中添加搜索功能

html - Bootstrap 标签移动其他跨度

html - 为什么背景颜色不起作用? - CSS

javascript - 定义最大宽度时在 safari 中获取真实的表格宽度

html - CSS 样式在移动浏览器上隐藏文本

Angular Material 垫波纹不起作用

javascript - JQtouch Onclick 在移动设备上的问题

javascript - 如何从样式标签获取 CSS 属性值?

javascript - 整个网站使用 Lightbox

当值发生变化时,Angular 组件不会更新 UI