【发布时间】:2015-08-31 19:54:38
【问题描述】:
我认识到,如果子元素的数量超过一行,那么内联块元素会获得 100% 的宽度:
<div style="background-color:red;padding:5px">
<div style="display:inline-block;background-color:green;padding:5px">
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
</div>
</div>
<style>
.cube{
background-color:yellow;
width:100px;
height:100px;
display:inline-block;
}
</style>
https://jsfiddle.net/xhj075fr/5/
有没有办法通过内联块来完成这项工作?目标是,在这样的居中 div 内获得一个左对齐的网格(绿色 div 的宽度应基于适合一行的立方体的数量):
【问题讨论】:
-
其实这是一个非常出乎意料的行为。谁能解释它为什么会这样工作以及为什么有意义?
-
@connexo,不确定,但由于未设置宽度,宽度=父宽度? (100%,默认)?
-
我很想听听@boltclock 对此的看法。
-
..绿色 div 内应该有多少黄色 div ......??我的意思是连续最大黄色 div 数?
-
这是一个很常见的问题。所有宽度缩小以适应元素(
display:inline-block、float:left等)的工作方式相同。如果内容的宽度之和大于父宽度,则取所有可用的父宽度。如果父宽度是浏览器宽度的函数,并且立方体是固定宽度,那么您可以使用媒体查询来设置适当的父宽度,否则 JavaScript 是您唯一的解决方案。