Cofigure角度材料输入的高度

时间:2016-10-26 18:50:23

标签: angularjs angular-material

我需要将Angular-Material输入的高度修改为最小值。

这是因为我需要在一个小盒子中插入许多输入(500px并且它位于屏幕的底部),但我需要输入的高度不会改变盒子的高度,那么我需要这两件事中的一件事不会发生:

1-此框变长,导致发送按钮和其他输入在屏幕外。

2-如果框的高度配置为百分比(高度:80%),则在框的右边框中显示滚动控件。

以下是代码:

<!doctype html>
<html lang="en">
<head>

<title>FORM</title>

<!-- Firebase -->
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/1.2.0/angularfire.min.js"></script>

    <!-- Angular Material style sheet -->
  <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">

</head>

<body ng-app="mmadera">
<div class="box" style="position:relative; width:500px; height:500px;">
  <div ng-controller="DemoCtrl" layout="column" ng-cloak="" class="md-inline-form inputdemoBasicUsage" >

    <md-content md-theme="docs-dark" layout-gt-sm="row" layout-padding="">
      <div>
        <md-input-container flex-gt-sm="">
          <label>Título</label>
          <input ng-model="user.titulo">
        </md-input-container>

        <md-input-container flex-gt-sm="">
          <label>Email</label>
          <input ng-model="user.email" type="email">
        </md-input-container>
      </div>
    </md-content>

    <md-content layout-padding="">
      <div>
        <form name="userForm">

          <div layout-gt-xs="row">
            <md-input-container  flex-gt-xs=""> <!-- class="md-block" disabled="" -->
              <label>Empresa</label>
              <input ng-model="user.empresa" >
            </md-input-container>


          </div>

          <div layout-gt-sm="row">
            <md-input-container class="md-block" flex-gt-sm="">
              <label>Nombre</label>
              <input ng-model="user.nombre">
            </md-input-container>

            <md-input-container class="md-block" flex-gt-sm="">
              <label>Teléfono</label>
              <input ng-model="user.nombre">
              <!-- ng-model="theMax" -->
            </md-input-container>
          </div>

          <md-input-container class="md-block">
            <label>Dirección</label>
            <input ng-model="user.direcdion">
          </md-input-container>



          <div layout-gt-sm="row">
            <md-input-container class="md-block" flex-gt-sm="">
              <label>País</label>
              <input ng-model="user.pais">
            </md-input-container>

           <md-input-container class="md-block" flex-gt-sm="">
              <label>Estado</label>
              <input ng-model="user.estado">
            </md-input-container>
          </div>

          <md-input-container class="md-block">
            <label>Mensaje</label>
            <textarea ng-model="user.mensaje" md-maxlength="150" rows="5" md-select-on-focus=""></textarea>
          </md-input-container>
  <div>
          <md-button type="submit" >ENVIAR</md-button>
        </div>

        </form>
      </div>
    </md-content>

  </div>
</div>







<!-- ............................. ANGULAR - A.MATERIAL ......................................-->
  <!-- Angular Material requires Angular.js Libraries -->
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-touch.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-animate.js"></script>
  <!-- Angular Material Library -->
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>



  <!-- Your application bootstrap  -->
  <script type="text/javascript">    
   angular.module('mmadera',['ngMaterial','ngMessages'])
   .controller('SwitchDemoCtrl', function($scope) {
  $scope.data = {
    cb1: true,
    cb4: true,
    cb5: false
  };

  $scope.message = 'false';

  $scope.onChange = function(cbState) {
    $scope.message = cbState;
  };
})
/* __________________________ PANEL js __________________________*/

/* __________________________ FOOTER  __________________________*/
.controller('footsoc', function($scope) {
      $scope.abre = false;

      $scope.mov = {
        isOpen: false,
        count: 0,
        selectedDirection: 'right'
      };
    })
/* __________________________ FOOTER  __________________________*/

/* __________________________ SIDE BAR (Proceso) __________________________*/

.controller('AppCtrl', function ($scope, $timeout, $mdSidenav, $log) {
    $scope.toggleLeft = buildDelayedToggler('left');
    $scope.toggleRight = buildToggler('right');
    $scope.isOpenRight = function(){
      return $mdSidenav('right').isOpen();
    };

    /**
     * Supplies a function that will continue to operate until the
     * time is up.
     */
    function debounce(func, wait, context) {
      var timer;

      return function debounced() {
        var context = $scope,
            args = Array.prototype.slice.call(arguments);
        $timeout.cancel(timer);
        timer = $timeout(function() {
          timer = undefined;
          func.apply(context, args);
        }, wait || 10);
      };
    }

    /**
     * Build handler to open/close a SideNav; when animation finishes
     * report completion in console
     */
    function buildDelayedToggler(navID) {
      return debounce(function() {
        // Component lookup should always be available since we are not using `ng-if`
        $mdSidenav(navID)
          .toggle()
          .then(function () {
            $log.debug("toggle " + navID + " is done");
          });
      }, 200);
    }

    function buildToggler(navID) {
      return function() {
        // Component lookup should always be available since we are not using `ng-if`
        $mdSidenav(navID)
          .toggle()
          .then(function () {
            $log.debug("toggle " + navID + " is done");
          });
      }
    }
  })
  .controller('LeftCtrl', function ($scope, $timeout, $mdSidenav, $log) {
    $scope.close = function () {
      // Component lookup should always be available since we are not using `ng-if`
      $mdSidenav('left').close()
        .then(function () {
          $log.debug("close LEFT is done");
        });

    };
  })
  .controller('RightCtrl', function ($scope, $timeout, $mdSidenav, $log) {
    $scope.close = function () {
      // Component lookup should always be available since we are not using `ng-if`
      $mdSidenav('right').close()
        .then(function () {
          $log.debug("close RIGHT is done");
        });
    };
  })
   .controller('DemoCtrl', function() {
      this.isOpen = false;

      this.availableModes = ['md-fling', 'md-scale'];
      this.selectedMode = 'md-fling';

      this.selectedDirection = 'right';
    })
    .controller('DropdownCtrl', function ($scope, $log) {
  $scope.items = [
    'The first choice!',
    'And another choice for you.',
    'but wait! A third!'
  ];

  $scope.status = {
    isopen: false
  };

  $scope.toggled = function(open) {
    $log.log('Dropdown is now: ', open);
  };

  $scope.toggleDropdown = function($event) {
    $event.preventDefault();
    $event.stopPropagation();
    $scope.status.isopen = !$scope.status.isopen;
  };

  $scope.appendToEl = angular.element(document.querySelector('#dropdown-long-content'));
})
    .controller('DemoCtrl', function($scope) {
    $scope.user = {
      titulo: 'Quiero vender mas!',
      email: 'ejemplo@koomkin.com',
      nombre: '',
      telefono: '',
      empresa: 'Koomkin',
      direccion: '1600 Amphitheatre Pkwy',
      pais: 'México',
      estado: 'CDMX',
      mensaje: 'Escribe tu mensaje',
      postalCode: '94043'
    };
  })
  .config(function($mdThemingProvider) {

    // Configure a dark theme with primary foreground yellow

    $mdThemingProvider.theme('docs-dark', 'default')
      .primaryPalette('yellow')
      .dark();

  });
  </script>



</body>
</html>

谢谢。

1 个答案:

答案 0 :(得分:0)

如果框的高度不得更改,请将max-height样式应用于overflow属性。

max-height将修复您的框高度,而设置为hidden的溢出属性将隐藏其中的元素,并且不会为您提供滚动条。

要更改输入高度,请为它们指定一个类:

<input ng-model="user.titulo" class="myInput">

给他们一个自己的高度。

仅供参考,应用输入高度的类是md-container .md-input,因此您可以覆盖它或添加我之前告诉您的新类。

根据您导入css表的方式,您可能需要使用类上的!important属性,如下所示:

.myInput {
    height: 20px !important;
    max-height: 20px !important;
}