Угловая карта Bootstrap с фиксированной длиной и высотой.Есть ли способ минимизировать код? - PullRequest
0 голосов
/ 17 декабря 2018

Я хотел бы знать, есть ли более простой способ распределить фиксированное количество карточек фиксированных размеров в три строки?

На данный момент я жестко кодирую все 33 карточки, распределенные в 3 строки - по 11 на строку,Извините за мой код, я новичок и все еще учусь.Любая помощь может быть оценена.Заранее спасибо!:)

Мой HTML-код показывает вам информацию о том, как я решил показать карты.Я добавил угловой компонент для справки.

import { Component } from '@angular/core';
import { map } from 'rxjs/operators';
import { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';


@Component({
  selector: 'app-agvdashboard',
  templateUrl: './agvdashboard.component.html',
  styleUrls: ['./agvdashboard.component.css'],
})
export class AgvdashboardComponent {
  /** Based on the screen size, switch from standard to one column per row */
  
  constructor(){}

  
}





<html>
  <head>
  
     <!--Container description starts here-->
  
  </head><div class="container">

  <h2 class="Heading-dashborad">AGV-Dashboard</h2>

  <!-- Selecting Load No from the drop down menu -->

  <app-loadselector></app-loadselector>

  <!-- Button triggers which are displayed after selecting load No -->
  <div class="load-unload-buttons">
    <div class= "invisible">
    <button type="button" class="btn btn-primary" tooltip="Click to Load">
   Load
  </button>
  <button type="button" class="btn btn-primary" tooltip="Click to Unload">
    Unload
  </button>
  </div>
</div>

<app-agvcard></app-agvcard>
 
 
<div class="top-dashboard-details">
 <div class="row ">
    
         
         <div class="col-md-1">
          
            <div class="card" ngbPopover="Load No.1
            RowNo.2
            SSCC1: 3576046640081210
            SSCC2: 3576046640081210
            SSCC3: 3576046640081210
            " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
                <div class="card-body">
                    <h4 class="card-title">Material No.</h4>
                    <p class="card-text">61617</p>
                  </div>
                </div>
              
</div>

<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
</div>
</div>


<div class="middle-dashboard-details">
<div class="row">
   <div class="col-md-1">
      <div class="card" ngbPopover="Load No.1
      RowNo.2
      SSCC1: 3576046640081210
      SSCC2: 3576046640081210
      SSCC3: 3576046640081210
      " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
          <div class="card-body">
              <h4 class="card-title">Material No.</h4>
              <p class="card-text">61617</p>
            </div>
          </div>
        </div>

 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
 <div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
</div>
</div>


<div class="bottom-dashboard-details">
<div class="row">
    <div class="card" ngbPopover="Load No.1
            RowNo.2
            SSCC1: 3576046640081210
            SSCC2: 3576046640081210
            SSCC3: 3576046640081210
            " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
                <div class="card-body">
                    <h4 class="card-title">Material No.</h4>
                    <p class="card-text">61617</p>
                  </div>
                </div>

<div class="col-md-1">    
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
</div>
<div class="col-md-1">
    <div class="card" ngbPopover="Load No.1
    RowNo.2
    SSCC1: 3576046640081210
    SSCC2: 3576046640081210
    SSCC3: 3576046640081210
    " triggers="mouseenter:mouseleave" popoverTitle="Pop title">
        <div class="card-body">
            <h4 class="card-title">Material No.</h4>
            <p class="card-text">61617</p>
          </div>
        </div>
  </div>
</div>
</div>

</div>

</html>

1 Ответ

0 голосов
/ 17 декабря 2018

введите описание изображения здесь

Привет, я думаю, что это лучший способ отобразить ваши данные.На вашем AgvcardComponent я добавил это:

export class AgvcardComponent implements OnInit {
  cards = {
   ngbPopover: 'Load No.1 RowNo.2 SSCC1: 3576046640081210 SSCC2: 3576046640081210 
   SSCC3: 3576046640081210',
   triggers: 'mouseenter:mouseleave',
   popoverTitle: 'Pop title',
   cardTitle: 'Material No.',
   cardText: '61617'
  };
  elements = [];
  constructor() { }
  ngOnInit() {
  for (let i = 0; i < 11; i++) {
    this.elements.push(this.cards);
   }
  }

}

Затем в шаблоне AgvcardComponent:

<!-- Top -->
<div class="top-dashboard-details">
  <!-- <div class="row"> -->
   <div *ngFor="let el of elements" class="col">
     <div class="card">
       <div class="card-boddy">
      <h6 class="card-title">
        {{el.cardTitle}}
      </h6> 
      <p class="card-text">
        {{el.cardText}}
      </p>
    </div>
   </div>
  </div>
 <!-- </div> -->
</div>

<!-- Middle -->
<div class="middle-dashboard-details">
 <!-- <div class="row"> -->
  <div *ngFor="let el of elements" class="col">
  <div class="card">
    <div class="card-boddy">
      <h6 class="card-title">
        {{el.cardTitle}}
      </h6> 
      <p class="card-text">
        {{el.cardText}}
      </p>
      </div>
    </div>
  </div>
 <!-- </div> -->
</div>

<!-- Bottom -->
<div class="bottom-dashboard-details">
<!-- <div class="row"> -->
  <div *ngFor="let el of elements" class="col">
   <div class="card">
     <div class="card-boddy">
       <h6 class="card-title">
        {{el.cardTitle}}
       </h6> 
       <p class="card-text">
        {{el.cardText}}
       </p>
     </div>
   </div>
 </div>
<!-- </div> -->
</div>

Наконец я добавил немного SCSS к этому компоненту:

* {
    padding: 0 !important;
    margin: 0 !important;
}
.top-dashboard-details, .middle-dashboard-details, .bottom-dashboard-details {
    margin-bottom: 10px !important;
    display: grid;
    grid-template-columns: repeat(11, 1fr);
    grid-gap: 10px;
 .card {
    padding: 5px !important;
 }
}
...