有一种方法可以将单选按钮上方的单选按钮标签放在角度材料2中吗?

时间:2017-08-22 18:30:27

标签: javascript angular flexbox angular-material2 angular-flex-layout

我正在使用角度素材2(material.io),我正试图将md-radio-button的标签放在收音机本身的上方,如下所示:

Radio Buttons

文档说你可以轻松地将位置设置为之后或之前。 我也在使用flex-layout(github.com/angular/flex-layout)。

这是我的代码:

COUNT_WITHIN_DMCID

如果有人可以帮助我,我会非常感激。谢谢!

2 个答案:

答案 0 :(得分:1)

如果您仔细观察md-radio-group创建的元素,您会注意到这一点:

<label class="mat-radio-label" for="md-radio-2-input">
    <div class="mat-radio-container">
        <div class="mat-radio-outer-circle"></div>
        <div class="mat-radio-inner-circle"></div>
        <div class="mat-radio-ripple mat-ripple" md-ripple="" ng-reflect-trigger="[object HTMLLabelElement]"
             ng-reflect-centered="true" ng-reflect-disabled="false"></div>
    </div>
    <input class="mat-radio-input cdk-visually-hidden" type="radio" id="md-radio-2-input" name="md-radio-group-0">
    <div class="mat-radio-label-content"><span style="display:none">&nbsp;</span>Option 2</div>
</label>

.mat-radio-label有这个CSS:

.mat-radio-label {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    vertical-align: middle;
}

这基本上告诉我们正在使用Flexbox来对齐其直接子节点(单选按钮和标签)。默认flex-directionrow,因此省略。您可以将其更改为列。添加flex-direction: column-reverse即可将标签放在上面。

答案 1 :(得分:0)

这对我有用

:host /deep/ .mat-radio-label {
  flex-direction: column-reverse;
  .mat-radio-label-content {
    padding: 0;
  }
}

使用"@angular/material": "^6.4.7"

enter image description here