你的表的方法有无效的标记:只有li
元素可以是ul
或ol
元素的子元素。如果你需要额外的div
,它必须是里面的li
。
您的Flexbox方法丢失box-orientation
/flex-direction
。通过诡辩,它被设置为horizontal
/row
,这就是它们全部出现在一行中的原因。您li
的CSS应该是这样的:
http://jsfiddle.net/4wSN5/1/
#slide-out-menu li {
width: 75px;
height: 75px;
border: 1px solid black;
display: -webkit-box;
display: -moz-box;
display: -webkit-flexbox;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-webkit-box-direction: normal;
-moz-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-moz-box-pack: center;
-webkit-flex-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
或者,你可能会留在了horizontal
/row
方向和使用的包装,但这只有在支持标准的浏览器工作规范(不包括启用实验性Flexbox支持的Firefox)。
您可能需要删除Firefox的前缀,因为它们的实现非常糟糕。我只包括他们,因为我的Sass mixin发射了它们。
如果您打算使用Flexbox,从来没有自己使用2009规范的属性。虽然Opera和Chrome(都在-webkit-前缀下)支持旧规格和新规格(Opera在新规格上没有前缀),但旧规格最终将被丢弃。