我必须实现的组件看起来像Metro上的tile组:
我几乎达到了目标,但我不明白为什么Flex容器会扩展自己。有没有办法将其宽度缩小到自己的内容宽度(删除青色瓷砖右侧的蓝色空间)
DEMO:
CSS:
div.vertical {
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: flex-start;
align-content: flex-start;
align-self:flex-start;
align-items: flex-start;
background-color:blue;
max-height:100%;
}
HTML:
<div class="vertical">
<div class = "vertical-tile">
1
</div>
<div class = "vertical-tile">
2
</div>
<div class = "vertical-tile">
3
</div>
</div>
如果您认为这不是好方法,那么您提出的解决此问题的建议是什么?
答案 0 :(得分:2)
我终于自己得到了答案
实际上,由于不同的浏览器行为导致Flexbox实现,它似乎不能仅由CSS制作
代码:
$(document).ready(function() {
$('.vertical').each(function( index ) {
var lastChild = $(this).children().last();
var newWidth = lastChild.position().left - $(this).position().left + lastChild.outerWidth(true);
$(this).width(newWidth);
})
});
演示: