Reputation: 515
I need to align the text content in the header on left and right side of header tag. i tried different ideas, but none works for me. help me.
<div style="width: 40%">
<mat-card>
<mat-card-header class="card-container">
<mat-card-title class="card-container-right"> Test right</mat-card-title>
<mat-card-title class="card-container-left"> Test left</mat-card-title>
</mat-card-header>
<mat-card-content>
</mat-card-content>
</mat-card>
</div>
Upvotes: 8
Views: 22155
Reputation: 63
add custom css on .mat-card-header class
.mat-card-header{
justify-content: flex-end /* for right*/
justify-content: flex-start /* for left*/
justify-content: centre /* for center*/
}
Upvotes: 4
Reputation: 1286
You can use what material design uses in mat-toolbar
<mat-card-title>
<span>Test left</span>
<span class="fill-remaining-space"></span>
<span>Test right</span>
</mat-card-title>
in your .css
.fill-remaining-space {
flex: 1 1 auto;
}
I am sorry, This doesn't work !!!!! Works in Mat-Toolbar, bat not in Mat-card Title.
Here is how it works, I knew I had used it somewhere
<mat-card>
<mat-card-title-group>
<span>Test left</span>
<span class="fill-remaining-space"></span>
<span>Test right</span>
</mat-card-title-group>
</mat-card>
see : https://stackblitz.com/edit/angular-rb5vmu for working example
Upvotes: 7
Reputation: 10834
You can also do this if you want to continue to use the mat-title
elements:
See working StackBlitz Example
In your (I'll call it) example-card.component.html file
<mat-card >
<mat-card-header>
<mat-card-title class="card-container-left"> Test left</mat-card-title>
<mat-card-title class="card-container-right"> Test right</mat-card- title>
</mat-card-header>
<mat-card-content>
</mat-card-content>
Then in your example-card.component.css
.card-container-right{
display: inline;
float: right;
}
.card-container-left{
display: inline;
}
..and finally in your styles.css
.mat-card-header-text{
width: 100% !important;
}
The trick to this is overriding Angular materials .mat-card-header-text
to be 100% the width of the mat-card-header
. Otherwise it behaves like in inline element and only takes up the width of its children elements text. Preventing you from spacing them out.
Upvotes: 13