【问题标题】:Align mat-card content(filling blank space issue)对齐垫卡内容(填充空白问题)
【发布时间】:2020-01-22 07:32:18
【问题描述】:

我正在使用列表中的 mat-card,但对齐有问题

我有什么:

这是我想要的:

问题是当一个mat card里面的内容变大时,下一个mat card应该自动调整空间,不会留下之前更大空间mat-card对应的空格

我附上对应的css和html代码:

.works {
    padding-left: 47px;
    padding-top: 99px;
    
    // display: inline-flex;
  }
  .work-head {
    // width: 330px;
    // height: 28px;
  
    font-family: Raleway-SemiBold;
    font-style: normal;
    font-weight: 500;
    font-size: 24px;
    line-height: 28px;
    // text-align: center;
  
    color: #000000;
  }
  
  .work-list {
    // width: 123px;
    // height: 28px;
    padding-left: 0px;
    text-align: right;
    padding-top: 23px;
  
  
    font-family: Raleway-Medium;
    font-style: normal;
    font-weight: normal;
    font-size: 24px;
    line-height: 28px;
    // text-align: center;
  
    color: #000000;
  }
  .work-list1 {
    // width: 123px;
    // height: 28px;

    text-align: right;
    padding-top: 23px;
  
  
    font-family: Raleway-Medium;
    font-style: normal;
    font-weight: normal;
    font-size: 24px;
    line-height: 28px;
    // text-align: center;
    padding-left: 49px;
    color: #000000;
  }
  
  .work-detail {
    // width: 159px;
    // height: 28px;
    padding-left: 0px;
    text-align: left;
    padding-top: 23px;
  
  
    font-family: Raleway;
    font-style: normal;
    font-weight: 300;
    font-size: 24px;
    line-height: 28px;
    // text-align: center;
  
    color: #000000;
  }
  
  .flexfix {
    flex-basis: 0;
  }
  
  .work-card {
    
    // margin-right: 26px;
    margin-bottom: 26px;
    padding-top: 39px;
    padding-left: 17px;
    padding-bottom: 49px;
    padding-right: 10px;
    width: 506px;
    // height: 244px;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    box-sizing: border-box;
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.04);
  }
  .card-margin{
      margin-left: 3%;
  }
<div class="works">
  <div fxLayout="row layout-wrap">
    <div *ngFor="let item of listOfProjects" class="card-margin">

      <mat-card class="work-card">
        <mat-card-title class="work-head">{{item.name}}</mat-card-title>
        <img class="line-align" src="assets/icons/DashBoard/work-card-line.svg" />
        <mat-card-content>
          <div *ngIf="item.name==='test10'">
            <div fxLayout="row" fxLayoutGap="20px">
              <div class="work-list">Contractor:</div>
              <div class="work-detail">{{item.baseEntityByContractor.entityName}}</div>
            </div>
            <div fxLayout="row" fxLayoutGap="20px">
              <div class="work-list">Contractor:</div>
              <div class="work-detail">{{item.baseEntityByContractor.entityName}}</div>
            </div>
          </div>
          <div fxLayout="row" fxLayoutGap="20px">
            <div class="work-list">Contractor:</div>
            <div class="work-detail">{{item.baseEntityByContractor.entityName}}</div>
          </div>
          <div fxLayout="row" fxLayoutGap="20px">
            <div class="work-list1">Status:</div>
            <div class="work-detail">{{item.projectStatus.name}}</div>
          </div>
        </mat-card-content>
      </mat-card>
    </div>
  </div>
</div>

【问题讨论】:

  • 您可以简单地通过放置一个覆盖行类并将其拆分为 6:6 来解决这个问题,然后在每个 6:6 col-div 内附加另一行,在其中您可以添加完整width divs 以避免空白问题。
  • @Jishnuvp 你能详细说明一下这个解决方案吗
  • 兄弟,我在下面添加了一个 sn-p,并用 bootstrap 4 和 HTML 进行了详细说明

标签: html css angular layout angular-material


【解决方案1】:

希望从下面的例子中你能找到解决你问题的方法。

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">


<div class="row">
  <div class="col-6">
    <div class="row">
      <div class="col-12">
        <div class="card border p-3 mb-2">
          <p>Lorericies nisl eget tincidunt. Vestibulum id pulvinar risus. Nam viverra pretium luctus. Morbi turpis tortor pretium luctus. Morbi turpis torto pretium luctus. Morbi turpis torto</p>
        </div>
      </div>
      <div class="col-12">
        <div class="card border p-3 mb-2">
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempor ultricies nisl eget tincidunt. Vestibulutor</p>
        </div>
      </div>
      <div class="col-12">
        <div class="card border p-3 mb-2">
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempor ultricies nisl eget tincidunt. Vr risus. Nam viverra pretium luctus. Morbi turpis tortor</p>
        </div>
      </div>
      <div class="col-12"> 
        <div class="card border p-3 mb-2">
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempor ultricies nisl eget tincidunt. Vestibulum id pulvinar risus. Nam viverra pretium luctus. Morbi turpis tortor</p>
        </div>
      </div>
    </div>
    </div>
    <div class="col-6">
      <div class="row">
        <div class="col-12">
        <div class="card border p-3 mb-2">
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempoar risus. Nam viverra pretium luctus. Morbi turpis tortor</p>
        </div>
      </div>
      <div class="col-12">
        <div class="card border p-3 mb-2">
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempor ultricies nisl eget tincidunt. Vestibulum id pulvinar risus. Nam viverra pretium luctus. Morbi turpis tortor</p>
        </div>
      </div>
      <div class="col-12">
        <div class="card border p-3 mb-2">
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempor</p>
        </div>
      </div>
      </div>
    </div>
  </div>




<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

【讨论】:

    【解决方案2】:

    这是一个常见的 css 问题,您需要一个砌体布局。您可以使用 css column-count 规则和 inline-block 元素来实现这一点。您需要添加媒体查询以响应更改column-count

    看到这个article,或者这个example

    有了这个,你就不需要外部的 CSS 或 JS 库了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 2021-03-19
      • 2013-05-01
      相关资源
      最近更新 更多