带有ul列表的CSS3内联flexbox?

时间:2014-02-10 19:15:39

标签: html css css3 html-lists flexbox

我正试图设置一个左边的meny,其中li元素伸展到屏幕的整个高度,无论屏幕大小如何。

我不能让li元素用css3 flex属性填充整个屏幕高度。我一直在寻找一份好的文档:

http://css-tricks.com/snippets/css/a-guide-to-flexbox/

我正在使用ul元素列表。不知道这是否导致问题..

这就是我要做的事情:

#left-drawer-menu {
    width: 100%;
    list-style-type: none;
    margin: 0px;
    padding: 0px;

    display: -webkit-flex;
    -webkit-flex-direction: column;

    display: flex;
    flex-direction: column;
}

#left-drawer-menu li{
    background-color: white;
    text-align: center;
    min-height: 100px;
    height: 20%;
}



<ul id="left-drawer-menu">
    <li data-icon="contacts"><span class="km-icon km-mostrecent"></span>Available 1</li>
    <li data-icon="globe"><span class="km-icon km-mostviewed"></span>Available 2</li>
    <li data-icon="camera"><span class="km-icon km-organize"></span>Available 3</li>
    <li data-icon="organize"><span class="km-icon km-featured"></span>Available 4</li>
    <li data-icon="settings"><a href="#profile"><span class="km-icon km-action"></span>Available 5</a></li>
</ul>

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

你需要:

a)将高度100%设置为所有元素链,包括ul,body和html

b)至少设置flex-grow到元素

body, html {
    height: 100%;
    padding: 0px;
}

#left-drawer-menu {
    width: 100%;
    height: 90%;
    list-style-type: none;
    margin: 0px;
    padding: 0px;

    display: -webkit-flex;
    -webkit-flex-direction: column;

    display: flex;
    flex-direction: column;
}

#left-drawer-menu li{
    background-color: white;
    text-align: center;
    flex-grow: 1;
}

fiddle