复选框使用angular,bootstrap

时间:2017-07-04 16:46:34

标签: angularjs twitter-bootstrap checkbox alignment

我正在尝试对齐我的复选框,当您添加新输入时,这就是它们现在的显示方式: checkboxes not aligned well。 这是我正在使用的代码(angular和bootstrap):

<div  class="container text-center">
<form ng-submit="todoAdd()">
    <input type="text" ng-model="todoInput" size="50" placeholder="Add New">
    <input type="submit" class="btn btn-success" value="Add New">
</form>

<br>

<div ng-repeat="x in todoList">
    <input type="checkbox" ng-model="x.done"> <span ng-bind="x.todoText"></span>
</div>

<p><button ng-click="remove()">Remove marked</button></p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('todoCtrl', function($scope) {
    $scope.todoList = [{todoText:'Clean House', done:false}];

    $scope.todoAdd = function() {
        $scope.todoList.push({todoText:$scope.todoInput, done:false});
        $scope.todoInput = "";
    };

    $scope.remove = function() {
        var oldList = $scope.todoList;
        $scope.todoList = [];
        angular.forEach(oldList, function(x) {
            if (!x.done) $scope.todoList.push(x);
        });
    };
});
</script>

我想知道是否有任何方法可以垂直对齐方框(在页面中央),也可以使用bootstrap或任何其他建议有帮助?这是我的第一个问题,所以我提前道歉,如果它没有正确制定,我提前感谢你的答案!

1 个答案:

答案 0 :(得分:0)

这是一个纯粹的CSS主题,您应该使用flexbox:

<div ng-repeat="x in todoList" style="display: flex; flex-direction: row; align-items: center">
<input type="checkbox" ng-model="x.done"> <span style="flex: 1" ng-bind="x.todoText"></span>
</div>

或在课堂上:

.flex-container {
 display: flex;
 flex-direction: row;
 align-items: center;
}

.flex-fill {
 flex: 1;
}

并将容器设置为repeat div,以及标签上的fill类。 fyi:flex:1表示元素应该填满容器的剩余宽度。 (我希望上面的代码有正确的语法)

在bootstrap中它应该是这样的:

<div ng-repeat="x in todoList" class="form-group">
  <label class="control-label" ng-bind="x.todoText">
      <input class="form-control" type="checkbox" ng-model="x.done"> 
  </label>
</div>

但我不太确定这是否是100%正确的