Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Padding problem at last element in every row when using fxLayoutGap and grid layout #1264

@Johnny99211

Description

@Johnny99211

Bug Report

I'm currently facing a big issue in the library. The problem is the fxLayoutGap setting for grid likely designs but just as a flexbox.

For example when I use this settings fxLayout="row wrap" fxLayoutGap="25px grid" fxFlexFill on each box/grid element to add a gap between each boxes, I'm also getting a gap at the last element of each row. In my eyes there should be no gap to prevent a useless padding there:

image

I did a lot of research. The most nearest answer on SO is this one:

Remove padding from fxLayoutGap last element of row

But this answer is just about the las element in a single row so the answer don't helps. So I've continued searching and found this issue from the past:

#363

This is an issue in the actual library. But sadly you said that this is not a bug and should be fixed by the developer. But I think this is not true...

You've provided this answer here...

Simply add a CSS style [fxFlex]:last-of-type { margin-right:15px; }

... and closed the ticket: Closing as a will-not-fix issue. So not very helpful. After trying your answer this way for padding [fxFlex]::nth-child(4n) { padding-right:0px !important; } I've found out the the last element get's bigger which looks bad because the padding is not a margin which would not affect the size:

image

This is my code of the element:

<div id="list" class="shadow-box-list" fxLayout="row wrap" fxLayoutGap="25px grid" fxFlexFill>
  <div class="widget" *ngFor="let element of elements" [fxFlex]="fxFlex">
    <div class="shadow-box-list-widget-content mat-elevation-z3" fxLayout="row" fxLayoutAlign="center center">
      <div class="name">{{element.name}}</div>
    </div>
  </div>
</div>

What is the expected behavior?

I'm expecting that the last element has no padding at the right side and that the width get's calculated correctly so that the last element is not bigger than the other ones because the padding is missing.

What is the current behavior?

There is too much space at the right side of the last element of a row.

What are the steps to reproduce?

Create a layout like showed above.

What is the use-case or motivation for changing an existing behavior?

The motivation is a good looking website.

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

Every version I saw so far.

Is there anything else we should know?

No

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions