如何在Angular-Material工具栏中对齐文本输入?

时间:2016-10-29 15:24:16

标签: html css angularjs angular-material

尝试将输入元素与角度材质工具栏上的按钮对齐时,我遇到了问题。

这是一个代码笔:http://codepen.io/curtwagner1984/pen/amgdXj

这是我的HTML:

<md-toolbar class="md-hue-1" layout-align="start center" style="min-height:15px; height: 50px" ng-show="$ctrl.showSearch">
    <div class="md-toolbar-tools">
        <md-button ng-click="$ctrl.showSearch = !$ctrl.showSearch">
            back
        </md-button>
        <md-input-container flex="">
            <input ng-model="searchInput" placeholder="Search here">
        </md-input-container>
        <md-input-container>
            <md-select ng-model="$ctrl.test">
                <md-option value="Option 1 Not Align">Option 1</md-option>
                <md-option value="Option 2 Not Align">Option 2</md-option>
            </md-select>
        </md-input-container>

        <md-button ng-click="$ctrl.showSearch = !$ctrl.showSearch">
            Search
        </md-button>
        <md-button ng-click="showListBottomSheet($event)">
            settings
        </md-button>
    </div>

</md-toolbar>

CSS是默认的Angular Material CSS文件。 如果有人能指出我如何在这里实现一致,那将会很高兴。

我也研究了这个:http://blog.sodhanalibrary.com/2015/07/header-design-with-angularjs-material-ui.html#.WBS-Y-B96Uk但是没有找到一个好的解决方案,当我尝试他们的代码时,工具栏中的输入容器仍然没有对齐。

2 个答案:

答案 0 :(得分:1)

为要对齐的所有元素添加此类。

.align-items {
  height: 50px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

答案 1 :(得分:1)

这是一种做法 - CodePen

需要注意的事项是:

  • 删除class="md-toolbar-tools"
  • md-select放在md-container
  • 将两个md-input-container括在div

这使用了Angular Material的做事方式,并且不需要额外的CSS。

编辑1:如果您希望md-toolbar的高度为50px,您可以轻松地将其样式设置为输入标签将离开屏幕。

编辑2:如果您想要50px的高度而标签不在屏幕上,您可以将md-no-float属性添加到md-input-container

标记

<div ng-controller="DemoCtrl as ctrl" layout="column" ng-cloak="" class="autocompletedemoBasicUsage" ng-app="MyApp">

  <md-toolbar class="md-hue-1" ng-show="true">
    <div layout="row" layout-align="start center">
      <md-button ng-click="$ctrl.showSearch = !$ctrl.showSearch">
        back
      </md-button>
      <div layout="row" flex>
        <md-input-container flex>
          <input ng-model="searchInput" placeholder="Search here">
        </md-input-container>
        <md-input-container flex>
          <md-select ng-model="$ctrl.test">
            <md-option value="Option 1 Not Align">Option 1</md-option>
            <md-option value="Option 2 Not Align">Option 2</md-option>
          </md-select>
        </md-input-container>
      </div>
      <md-button ng-click="$ctrl.showSearch = !$ctrl.showSearch">
        Search
      </md-button>
      <md-button ng-click="showListBottomSheet($event)">
        settings
      </md-button>
    </div>

  </md-toolbar>
</div>