右对齐元素不在一条线上

时间:2019-10-10 13:03:54

标签: html css sass angular-material

我想在左侧放置一些元素,在右侧放置一些元素。但是右边的元素并没有保持一致,尤其是在添加了mat-form-field之后。我得到了:

enter image description here

在右侧,“右键”和“图标”在同一行上,但是mat-form-field不在同一行上。

我的html是:

<div class="mat-table-container">
    <div class="mat-table-button-wrapper">
        <div id="left-aligned-wrapper">
            <button class="btn btn-primary"> 
                Left Button
            </button>
        </div>
        <div id="right-aligned-wrapper">
            <mat-form-field appearance="standard">
              <input matInput placeholder="Placeholder">
            </mat-form-field>
            <button type="button" mat-button>
              Right Button
            </button>
            <button class="btn btn-default">
              <i class="my-icon my-icon-filter"></span>
            </button>
        </div>
    </div>
</div>

我的CSS是:

.mat-table-container {
  position: relative;
  .mat-table-button-wrapper {
    height: 50px;
    padding-left: 0em;
    padding-top: 1em;
    #left-aligned-wrapper {
      float: left;
    }  
    #right-aligned-wrapper {
      float: right;
    }
  }
}

这里可能出什么问题了?

2 个答案:

答案 0 :(得分:0)

在这种情况下,我建议您使用flexbox而不是float

这将导致您的CSS看起来像这样:

.mat-table-container {
  position: relative;
  .mat-table-button-wrapper {
    height: 50px;
    padding-left: 0em;
    padding-top: 1em;
    display: flex;
    justify-content: space-between;
  }
}

即删除将display: flex应用于包装类,并使用justify-content: space-between相应地分隔内容。

这还将确保您的内容不会跳到下一个“行”。

答案 1 :(得分:0)

请应用宽度:两个元素均应为50%。 或使用display:flex属性。

.mat-table-button-wrapper {
  display: flex;
  align-item: center;
  justify-content: space-between;
}