问题是:
简单指令和ngRepeat中的相同指令之间有很大的空间(如果是display: inline-block
和chrome浏览器)
<tile></tile>
<tile></tile>
<tile></tile>
<tile></tile>
ngRepeat
之类的内容,布局就会被打破:<tile></tile>
<tile></tile>
<tile></tile>
<!-- Here will be too big space-->
<tile ng-repeat="t in [0, 1, 2, 3]"></tile>
这里是指令的代码:
.directive('tile', function () {
return {
restrict: 'E',
scope: {},
replace: true,
template: '<div class="tile"></div>',
controller: function ($scope) {},
link: function (scope) {}
};
})
指令css类.tile
:
.tile {
background-color: red;
height: 70px;
width: 70px;
margin: 4px 2px;
display: inline-block;
}
那么,为什么会这样呢?是什么原因,我该如何对抗这个?
答案 0 :(得分:1)
删除标记之间的空格。显示内联块考虑元素之间的空白。
答案 1 :(得分:1)
您可以添加float: left
;到你的CSS请看下面的演示
angular.module('app', [])
.directive('tile', function() {
return {
restrict: 'E',
scope: {},
replace: true,
template: '<div class="tile"></div> ',
controller: function($scope) {
},
link: function(scope) {
}
};
});
.tile {
background-color: red;
height: 70px;
width: 70px;
margin: 4px 2px;
display: inline-block;
float: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app='app'>
<div class="wrap">
<tile></tile>
<tile></tile>
<tile ng-repeat="t in [0, 1, 2, 3]"></tile>
</div>
</body>