【问题标题】:CSS3 inline flexbox with ul list?带有 ul 列表的 CSS3 内联弹性框?
【发布时间】:2014-03-08 07:09:29
【问题描述】:

我正在尝试设置一个左侧菜单,其中li 元素拉伸到屏幕的整个高度,无论屏幕大小如何。

我不能用 css3 flex 属性让 li 元素填满屏幕的整个高度。我一直在这里查看一个很好的文档:

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>

感谢您的帮助。

【问题讨论】:

  • 问题到底是什么?
  • 我不能让 li 元素填满屏幕的整个高度

标签: html css html-lists flexbox


【解决方案1】:

你需要:

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

【讨论】:

  • 感谢 Vals,我可以看到它在 fiddle 上运行,但我无法让它在我的网站上运行,我一直在尝试重现您所说的内容,但没有成功,会继续尝试
猜你喜欢
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 2012-06-02
  • 2019-01-20
相关资源
最近更新 更多