0

好的,我之前问了一个问题:

如何使用css使div填充剩余的垂直空间

得到了我现在一直在玩的答案:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">

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

            #header {
                float: top;
                width: 100%;
                height: 15%;
                background-color: green;
            }

            #navbar {
                float: left;
                width: 20%;
                height: 70%;
                background-color: red;
            }

            #content {
                float: right;
                width: 80%;
                height: 70%;
                background-color: blue;
            }
            #footer {
                float: bottom;
                width: 100%;
                height: 15%;
                background-color: yellow;
            }

        </style>
    </head>
    <body>
        <div id="header"> Header </div>
        <div id="navbar"> Nav Bar </div>
        <div id="content"> Body </div>
        <div id="footer"> Footer</div>
    </body>
</html>

现在 ultimatley Id 想要实现这一点:

在此处输入图像描述

它覆盖了 100% 的屏幕,但我可以选择这些百分比的分布方式,即:

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

#header {
    float: top;
    width: 100%;
    height: 15%;
    background-color: green;
}

#navbar {
    float: left;
    width: 20%;
    height: 70%;
    background-color: red;
}

#content {
    float: right;
    width: 80%;
    height: 70%;
    background-color: blue;
}
#footer {
    float: bottom;
    width: 100%;
    height: 15%;
    background-color: yellow;
}

你可以 html 和 body 的高度为 100%,从而填满屏幕。页眉的高度百分比为 15%,导航栏和正文的百分比为 70%,页脚为 15%,它们总共将构成可见屏幕的 100%...

现在一切似乎都很好,除了我的页脚:

#footer {
    float: bottom;
    width: 100%;
    height: 10%;
    background-color: yellow;
}

如果我删除height: 15%然后我可以看到我的黄色背景颜色:

在此处输入图像描述

如果我没有它的一些灰色。并且看起来占据了大约 20% 的屏幕:

在此处输入图像描述

所以基本上我将如何让我的 div 占据我分配给它们的正确高度百分比?

我希望我有道理。

提前致谢。

4

2 回答 2

1

你不能浮动到顶部或底部。那是不存在的。所以你必须从你的页眉和页脚中删除它。

并通过执行以下操作清除页脚:

footer {
  clear: both;
}
于 2013-04-11T10:49:27.593 回答
1

你的问题是没有:

float:top;

或者

float:bottom;

你需要做的是让他们都float:left;

这是您的代码与更新的复制和粘贴:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">

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

            #header {
                float: left;
                width: 100%;
                height: 15%;
                background-color: green;
            }

            #navbar {
                float: left;
                width: 20%;
                height: 70%;
                background-color: red;
            }

            #content {
                float: right;
                width: 80%;
                height: 70%;
                background-color: blue;
            }
            #footer {
                float: left;
                width: 100%;
                height: 15%;
                background-color: yellow;
            }

        </style>
    </head>
    <body>
        <div id="header"> Header </div>
        <div id="navbar"> Nav Bar </div>
        <div id="content"> Body </div>
        <div id="footer"> Footer</div>
    </body>
</html>
于 2013-04-11T11:00:39.463 回答