右文本对齐垫 - 扩展 - 面板材料组件

Ham*_*dad 7 html css angular-material angular

我会将mat-expansion-panel组件的描述文本对齐到右边

我试图使用对齐文本,但没有任何改变这是我的HTML

<mat-expansion-panel>
    <mat-expansion-panel-header>
      <mat-panel-title>
        Cycle ingénieur en informatique
      </mat-panel-title>
      <mat-panel-description>
        2014-2017
      </mat-panel-description>
    </mat-expansion-panel-header>
    ....
  </mat-expansion-panel>
Run Code Online (Sandbox Code Playgroud)

CSS:

mat-panel-description {
    text-align: right;
}
Run Code Online (Sandbox Code Playgroud)

这是实际行为

例

我希望2014年的这段时间能够保持正确.

Jay*_*ase 10

面板标题内容包含在作为flexbox的范围中,因此您可以使用它将内容推送到两侧.

视图:

<mat-expansion-panel>
<mat-expansion-panel-header class="right-aligned-header">
  <mat-panel-title>
    Cycle ingénieur en informatique
  </mat-panel-title>
  <mat-panel-description>
    2014-2017
  </mat-panel-description>
</mat-expansion-panel-header>    
Run Code Online (Sandbox Code Playgroud)

css(这必须是全局css,例如.styles.css不在组件样式中):

.right-aligned-header > .mat-content {
    justify-content: space-between;
}

.mat-content > mat-panel-title, .mat-content > mat-panel-description {
  flex: 0 0 auto;
}
Run Code Online (Sandbox Code Playgroud)

这是Stack Blitz演示

  • 您能解释一下为什么必须使用gobal styles.css吗? (3认同)

Die*_*er 7

基于此解决方案:https : //github.com/angular/components/issues/10024

.mat-expansion-panel-header-description, .mat-expansion-panel-header-title {
  flex-basis: 0;
}
Run Code Online (Sandbox Code Playgroud)

并再次阅读问题,这对我有用:

.mat-expansion-panel-header-description {
  display: flex;
  justify-content: flex-end;
}
Run Code Online (Sandbox Code Playgroud)


Val*_*kov 5

最简单的解决方案,我发现是重置flex-growmat-panel-description

// my.component.css

mat-panel-description.right-aligned {
  flex-grow: 0;
}
Run Code Online (Sandbox Code Playgroud)
// my.component.html

...
  <mat-expansion-panel-header>
    <mat-panel-description class="right-aligned">
      2014-2017
    </mat-panel-description>
  </mat-expansion-panel-header>
...
Run Code Online (Sandbox Code Playgroud)

闪电战