如何让 div 的高度占据所有空间?

Posted

技术标签:

【中文标题】如何让 div 的高度占据所有空间?【英文标题】:How to make the height of the div take all the space? 【发布时间】:2012-08-23 14:58:47 【问题描述】:

这是我的 css 规则和标记:

<div style = "height:100%;">
<div style = "width:220px; margin-left: 200px;font-size:16px; height:auto;">
    <div class='navbar-inner'>
        <div class='container'>
        <ul class="nav nav-list">
            <div>   
            <li <?php if($page == 'upload_track') echo "class = \"active\""; ?>><a href = "#">Upload a new Track</a></li>
            <li><a href = "#">View all blog post</a></li>
            <li><a href = "#">View all tracks uploaded</a></li>
        </div>
        </ul>
    </div>
    </div>
</div>
<div style = "width:220px; margin-left: 200px;font-size:16px; height:auto;">

到目前为止,我正在将它们设为内联样式,以便我可以轻松更改它们。因为切换文本编辑器对我来说有点麻烦。

如何使该 div 占据所有可用高度?就像页面的最底部一样。截至目前,它看起来像这样

我想看到的是黑色的div占据了页面中所有的可用高度

【问题讨论】:

您阅读了整个问题吗? 我的小知识从给定的文章中得出:所有父母的身高应该是 100%,孩子的身高也应该是 100%,因为默认情况下任何元素的高度都是“自动”的。 webdesign.about.com/od/csstutorials/f/… 【参考方案1】:

是的,它可以做到。查看this example JSFiddle。

基本上我将您的 html 更改为:

<div id="navbar">
    <div class='navbar-inner'>
        <div class='container'>
            <ul class="nav nav-list">
                <div>   
                    <li><a href = "#">Upload a new Track</a></li>
                    <li><a href = "#">View all blog post</a></li>
                    <li><a href = "#">View all tracks uploaded</a></li>
                </div>
            </ul>
        </div>
    </div>
</div>

基本上我所做的只是删除最外层的 div(上面只有 style="height: 100%" 的那个)并给下一个 div 一个 id。

CSS如下:

html, body  height: 100%; 

#navbar  
    /* this was moved from being an inline style in the div: */
    width:220px; margin-left: 200px;font-size:16px;
    height: 100%;
​

基本上,为了使导航栏条占用 100% 的高度,您需要确保 html 和正文实际上占用 100% 的可用高度。 (也就是说,#navbar 上的 100% 是父元素高度的 100%;如果父元素不是浏览器的高度,则它不起作用。) ​

【讨论】:

以上是关于如何让 div 的高度占据所有空间?的主要内容,如果未能解决你的问题,请参考以下文章

让 div (height) 占据父级剩余高度

如何使表格占据所有水平空间 TailwindCSS (React)

如何让div占据剩余高度?

高度为 100% 的 Div 溢出到其父级下方的 flexbox 行 [重复]

CSS中如何让元素隐藏?

当 flex-direction 为 column 时,divs 占据所有可用宽度。如何防止这种情况? [复制]