你的表的方法有無效的標記:只有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在新規格上沒有前綴),但舊規格最終將被丟棄。