我希望实现这样的定位(这些是按钮,但并不重要):
因此,我称之为上下左右定位-浏览器应该将元素放在前一个元素下方(如果有足够的空间),否则放在其旁边。我不知道会有多少个元素,也不知道它们的宽度等等-它必须非常灵活。
经过简短的研究,我找到了
注意:我不希望它占据100%的宽度-它只需要占据所需的空间即可。父级上的
简单情况下:大按钮,大按钮,小按钮,大按钮-它工作得很好。当我再添加一个小按钮时,问题就出现了-它被正确显示-在前一个按钮下面,但父级变大了!
这是我得到的代码(以及fiddle,在其中显示这两种情况:http://jsfiddle.net/h7SK7/):
|-------|-------|-------|-------|
| | | small | |
| | |-------| |
| big | big | small | big |
|-------|-------|-------|-------|
因此,我称之为上下左右定位-浏览器应该将元素放在前一个元素下方(如果有足够的空间),否则放在其旁边。我不知道会有多少个元素,也不知道它们的宽度等等-它必须非常灵活。
经过简短的研究,我找到了
display: flex
。它看起来非常有前途(我不需要与不同浏览器兼容-我的计划是使用html制作本地应用程序),但有一个问题。注意:我不希望它占据100%的宽度-它只需要占据所需的空间即可。父级上的
float: left
似乎是完美的。简单情况下:大按钮,大按钮,小按钮,大按钮-它工作得很好。当我再添加一个小按钮时,问题就出现了-它被正确显示-在前一个按钮下面,但父级变大了!
这是我得到的代码(以及fiddle,在其中显示这两种情况:http://jsfiddle.net/h7SK7/):
<div class="container">
<button>Lorem</button>
<button class="small">Dolor</button>
<button class="small">Sit</button>
</div>
div.container {
height:50px;
display: flex;
flex-direction: column;
flex-wrap: wrap;
float:left;
}
button {
height:50px;
}
button.small {
height:20px;
}
有人能帮我吗?