您的 table 方法具有无效标记:只有li
元素可以是ul
或ol
元素的子级。如果你需要额外的东西,div
它必须在li
.
您的 Flexbox 方法缺少box-orientation
/ flex-direction
。默认情况下,它设置为horizontal
/ row
,这使得它们都出现在一行中。您的 CSSli
应该如下所示:
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 在新规范上没有前缀),但旧规范最终将被删除。