如何垂直对齐文本列表中的所有元素?

时间:2019-11-08 15:33:58

标签: html css angular

我正在尝试在Angular应用程序中对齐这些元素-日期,文件总数和文件大小。 如果有更大的数字和更多的数字,则它会将其他元素推开。 我尝试过更改填充边距,并尝试过显示:Flex,inline和inline-block。 我希望每个元素的开始都排齐,即使数字具有更多或更少的数字,所以说我们有-2019年4月1日1个文件3445 G每个元素的开始都将与2019年3月28日对齐34个文件29282 G

这些元素跨度为一类jobdate-item-date,jobdate-item-file-total和jobdate-item-file-length。 当您单击这些按钮时,它们将打开,显示作业数据列表。这是一张图片和我当前的代码-

HTML-

      <div *ngFor="let date of selectedJob.dates" class="card-date-file">
        <div class="detail-item" (click)="toggle()">
          <span class="jobdate-item-date">{{ date.date | date: 'MMM dd, y' }}</span>
          <span class="jobdate-item-file-total">{{ date.files.length }} files</span>
          <span class="jobdate-item-file-length">{{ jobFileCalc(date.files) }} GB</span>
        </div>
        <ng-container *ngIf="show">
        <div *ngFor="let file of date.files" class="list" >
          <span class="file-item-filename">{{ file.filename }}</span>
          <span class="file-item-incr">{{ file.incr? 'INCR':'FULL' }}</span>
          <span class="file-item-time">{{ file.dttm | date:'h:mm' }}{{ file.dttm | date:'a' | lowercase }}</span>
          <span class="file-item-size">{{ file.sizegb.toFixed(1)| number : fractionSize }} GB</span>
        </div>
        </ng-container>
      </div>
    </div>

CSS-

.jobdate-item-date {
  padding: 0.1em 1.1em 0.3em 0.8em;
}

.jobdate-item-file-total {
  padding: 0.3em 1.1em 0.3em 1.1em;
}

.jobdate-item-file-length {
  padding: 0.3em 1.1em 0.3em 1.1em;
}

1 个答案:

答案 0 :(得分:2)

您可以给每个元素一定的宽度(我在示例中使用了flexbox),如果它太长,可以根据需要用一些椭圆形截断文本。当然,您可以选择宽度,也可以使用百分比来获得想要的结果。

.detail-item {
  display: flex;
  padding: 8px;
}

.jobdate-item-date,
.jobdate-item-file-total, 
.jobdate-item-file-length {
  flex: 0 0 100px;
  
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="detail-item" (click)="toggle()">
  <span class="jobdate-item-date">Mar 29, 2019</span>
  <span class="jobdate-item-file-total">12 files</span>
  <span class="jobdate-item-file-length">2280.2 GB</span>
</div>

<div class="detail-item" (click)="toggle()">
  <span class="jobdate-item-date">Apr 3, 2019</span>
  <span class="jobdate-item-file-total">2 files</span>
  <span class="jobdate-item-file-length">99.2 GB</span>
</div>

<div class="detail-item" (click)="toggle()">
  <span class="jobdate-item-date">Apr 3, 2019</span>
  <span class="jobdate-item-file-total">2 files</span>
  <span class="jobdate-item-file-length">324324234234234232423 GB</span>
</div>