我正在尝试使用angularJS循环填充div标签中的数据。
<div>
<div class='box' ng-repeat="product in Products | filter:{'scid': SCId.toString()}:true | orderBy:'pname'">
<br>
<b>{{product.bname}} </b>
<br>{{ product.pname }}
<br>
<img src="http://localhost/{{ product.image_path }}" alt="" border=3 height=75 width=75></img>
</div>
</div>
这是我的CSS课程。
.box {
margin : 5px;
display : inline-block;
width: 150px;
height: 250px;
background-color: grey;
text-align:center;
}
但它没有正确呈现。 (一些随机边距顶部和底部)
有人可以帮助我做错了吗?
答案 0 :(得分:4)
这是由于vertical-align: middle
始终使用vertical-align: top;
display: inline-block;
第二个问题是未知边距,display: inline-block;
元素获得边距,将font-size: 0
添加到其父级。 :)
ul {
max-width: 500px;
font-size: 0;
margin: 0 auto;
}
ul > li {
display: inline-block;
width: 100px;
height: 150px;
background: black;
margin: 5px;
list-style: none;
vertical-align: top;
}
&#13;
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
&#13;
答案 1 :(得分:3)
添加
vertical-align: top;
到你的CSS
答案 2 :(得分:1)
这是因为display:inline-block
默认设置为vertical-align:baseline
,因此您需要设置vertical-align:top
。
设置为
inline-block
的元素与inline
非常相似 将inline
设置为自然的文本流(在&#34;baseline
&#34;上)。该 区别在于您可以设置width
和height
受到尊重。
Plus display:inline-block
导致元素之间存在差距,有一些解决方案可以解决这些问题:
所以这是一个片段:
.box-wrapper {
font-size: 0
}
.box {
margin: 5px;
display: inline-block;
width: 150px;
height: 250px;
background-color: grey;
text-align: center;
vertical-align: top;
font-size: 16px;
}
&#13;
<div class="box-wrapper">
<div class="box">this will be vertical aligned top</div>
<div class="box">this will be vertical aligned top</div>
<div class="box">this will be vertical aligned top</div>
</div>
&#13;