Html Can';“得不到”;内容“;扩展页面长度的div

Html Can';“得不到”;内容“;扩展页面长度的div,html,css,Html,Css,我在谷歌上搜索了这个,并尝试了所有他们建议的方法,但它似乎不起作用 我正在制作一个模板,所以它必须在一个HTML文件中。我猜我的CSS有点乱七八糟,我只是不明白。。。不过我已经扫描过好几次了 问题图片(我希望白色延伸到页面底部;即使没有足够的内容): CSS(还有更多,但我认为这些是唯一重要的): HTML %SEARCH\u站点% %含量% 您必须移动背景色:白色to#wrapper,它是内容和边栏的容器,用于将整个框背景变为白色 将#sidenav和#content

我在谷歌上搜索了这个,并尝试了所有他们建议的方法,但它似乎不起作用

我正在制作一个模板,所以它必须在一个HTML文件中。我猜我的CSS有点乱七八糟,我只是不明白。。。不过我已经扫描过好几次了

问题图片(我希望白色延伸到页面底部;即使没有足够的内容):

CSS(还有更多,但我认为这些是唯一重要的):

HTML





  • %SEARCH\u站点%


    %含量%
    您必须移动
    背景色:白色
    to#wrapper,它是内容和边栏的容器,用于将整个框背景变为白色

    将#sidenav和#content更改为
    display:inline block
    ,而不是
    float:left
    ,以允许#包装器调整到其内容的高度。添加
    vertical align:top
    ,这样它们将正确地顶部对齐

    #wrapper
    {
        width: 80%;
        margin: auto;
        background-color: white;
    }
    
    #sidenav
    {
        width: 20%;
        display: inline-block;
        vertical-align: top;
        background-color: white;
    }
    #sidenav .nav {
        border-bottom-left-radius: 5px;
        border-right: 1px solid pink;
    }
    #content
    {       
        padding: 25px;
        width: 80%;
        display: inline-block;
        vertical-align: top;
        margin: auto;
    }
    
    您还必须去掉#sidenav上的1px右边框,这将使#wrapper的内容加起来超过其with的100%(因此是wrapp)

    将sidenav内容更改为:

    <div id="sidenav">
        <div class="nav">
            ...
        </div>
    </div>
    
    
    ...
    
    您必须移动
    背景色:白色
    to#wrapper,它是内容和边栏的容器,用于将整个框背景变为白色

    将#sidenav和#content更改为
    display:inline block
    ,而不是
    float:left
    ,以允许#包装器调整到其内容的高度。添加
    vertical align:top
    ,这样它们将正确地顶部对齐

    #wrapper
    {
        width: 80%;
        margin: auto;
        background-color: white;
    }
    
    #sidenav
    {
        width: 20%;
        display: inline-block;
        vertical-align: top;
        background-color: white;
    }
    #sidenav .nav {
        border-bottom-left-radius: 5px;
        border-right: 1px solid pink;
    }
    #content
    {       
        padding: 25px;
        width: 80%;
        display: inline-block;
        vertical-align: top;
        margin: auto;
    }
    
    您还必须去掉#sidenav上的1px右边框,这将使#wrapper的内容加起来超过其with的100%(因此是wrapp)

    将sidenav内容更改为:

    <div id="sidenav">
        <div class="nav">
            ...
        </div>
    </div>
    
    
    ...
    
    要解决此问题,您可以更改容器的高度以使用
    vh
    装置

    在css中,将主内容容器的高度设置为:

    #content
    {       
        height: 100vh;
    }
    
    这会将容器的高度设置为视口中浏览器垂直高度的100%,请注意,这可能与旧浏览器存在兼容性问题

    在出现问题的情况下,您还需要将父元素高度设置为
    100vh
    ,这是因为子元素(您的主要内容)将适合其父元素高度的
    100%
    ,这不适合整个页面,要解决此问题,请在css中添加以下内容:

    #wrapper
    {
         height: 100vh;
    }
    

    子元素现在可以填充整个屏幕。

    为了解决这个问题,您可以更改容器的高度以使用
    vh
    单元

    在css中,将主内容容器的高度设置为:

    #content
    {       
        height: 100vh;
    }
    
    这会将容器的高度设置为视口中浏览器垂直高度的100%,请注意,这可能与旧浏览器存在兼容性问题

    在出现问题的情况下,您还需要将父元素高度设置为
    100vh
    ,这是因为子元素(您的主要内容)将适合其父元素高度的
    100%
    ,这不适合整个页面,要解决此问题,请在css中添加以下内容:

    #wrapper
    {
         height: 100vh;
    }
    

    子元素现在可以填充整个屏幕。

    考虑以下示例

    CSS

    html,
    *
    {
    边界:0;
    框大小:边框框;
    保证金:0;
    填充:0;
    }
    #包装纸
    {
    背景色:红色;
    显示器:flex;
    最小高度:100vh;
    }
    #col-1
    {
    背景颜色:蓝色;
    显示:块;
    浮动:左;
    宽度:25%;
    }
    #col-2
    {
    背景颜色:黄色;
    显示:块;
    浮动:左;
    宽度:75%;
    }
    
    专栏1

    专栏1

    专栏1

    专栏2


    考虑以下示例

    CSS

    html,
    *
    {
    边界:0;
    框大小:边框框;
    保证金:0;
    填充:0;
    }
    #包装纸
    {
    背景色:红色;
    显示器:flex;
    最小高度:100vh;
    }
    #col-1
    {
    背景颜色:蓝色;
    显示:块;
    浮动:左;
    宽度:25%;
    }
    #col-2
    {
    背景颜色:黄色;
    显示:块;
    浮动:左;
    宽度:75%;
    }
    
    专栏1

    专栏1

    专栏1

    专栏2


    你能把它放进一个JSFIDdle吗?你能把它放进一个能按高度工作的JSFIDdle吗;但是现在内容没有集中在页面上。已编辑-请重试。嗯,它现在可以按高度工作。但内容不再正确排列…实际上,包装内容的原因是您的#sidenav上的1px边框。这导致了