Search code examples
angularjsmaterial-designgrid-layoutangular-material

Trying to have a grid of card with angular material


I have been trying to have a grid of card using angular-material. So I am using the directives md-grid-list and md-card. but the result is pretty ugly, and I am not sure to understand how the md-row-heigh (ratio) works, I have the documentation, but it doesn't say a lot.

Here is what I have been doing so far : http://codepen.io/stunaz/pen/qdQwbq , I am trying to have a responsive grid of card, not even sure if the md-grid-list is appropriate here.

  <md-grid-list md-cols-sm="1" md-cols-md="2" md-cols-gt-md="6" md-row-height="300px" md-gutter="12px" md-gutter-gt-sm="8px">

<md-grid-tile class="gray" ng-repeat="user in users">
  <md-card>
    <img src="http://placehold.it/150x150" class="md-card-image" alt="user avatar">
    <md-card-content>
      <h2>{{user}}</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
    </md-card-content>
    <div class="md-actions" layout="row" layout-align="end center">
      <md-button>Save</md-button>
      <md-button>View</md-button>
    </div>
  </md-card>
</md-grid-tile>

I am open to any kind of help.


Solution

  • You could use Flex Box instead of md-grid-list to have the same effect.

      <div class='md-padding' layout="row" flex>
         <div layout="row" flex>
            <div class="parent" layout="column" ng-repeat="user in users" flex>
                ... Your content here
            </div>
         </div>
      </div>
    

    Take a look at this Example with fixed number of cards in a row:

    http://codepen.io/anon/pen/bdQJxy

    And a responsive example, using Wrap layout

    http://codepen.io/anon/pen/MwzRde

    Hope this is what you wanted.