当html高度为自动时,如何使用百分比设置高度?

当html高度为自动时,如何使用百分比设置高度?,html,css,position,height,Html,Css,Position,Height,我遇到了一个相当令人沮丧的问题。我想做的是创建一个div“#generic div”,高度为页面高度的20%,并设置一个始终粘在页面底部的页脚*;这两者似乎是相互排斥的 *“页面”并不是指窗口中显示的当前可见矩形,而是指通过水平或垂直滚动可以查看的所有内容,因此#footer{position:fixed;bottom:0;}不是解决方案。页脚必须始终位于我的div.container下 这是我的应用程序。html.erb: <!DOCTYPE html> <html>

我遇到了一个相当令人沮丧的问题。我想做的是创建一个div“#generic div”,高度为页面高度的20%,并设置一个始终粘在页面底部的页脚*;这两者似乎是相互排斥的

*“页面”并不是指窗口中显示的当前可见矩形,而是指通过水平或垂直滚动可以查看的所有内容,因此
#footer{position:fixed;bottom:0;}
不是解决方案。页脚必须始终位于我的div
.container

这是我的应用程序。html.erb:

<!DOCTYPE html>
<html>
<!-- ... -->
<body>
  <div class="container"><%= yield %></div>
  <div id="footer"></div>
</body>
</html>
HTML填满了页面中的所有可用空间,并将
#footer
向下按到最远。但是,
#generic div
没有可从中继承其高度的显式父元素高度,因此其高度为0

当我这样做时:
#generic div
的高度设置为页面的20%,但现在
html
的高度正好是浏览器窗口的高度,因此
#footer
设置在浏览器窗口底部边框的正下方,当我向下滚动时,页脚下会显示更多内容。我想页脚是最底层的内容


如何完成
高度:20%
div和底部的页脚


如果我的问题有任何不清楚的地方,请告诉我,我会尽力澄清。

好的。我明白你想做什么。这就是你要找的。答案已经在小提琴上测试过了,下面的代码是为了你们的方便。您遇到的问题是bodyhtml元素就是一切。HTML元素就是可见空间所以答案是肯定的。不要100%地应用于HTML标记,只应用于BODY标记。

CSS

body{
    margin:0px;
    padding:0px;
    clear:both;
    color:#000;
    height:100%;
    display:block;
}
.container{
    height:80%;
    width:100%;
    background-color:#A00002;
    display:block;
}
#footer{
    width:100%;
    height:20%;
    background-color:#005C97;
    display:block;
}
HTML

<body>
  <div class="container">Here is some  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, imperdiet vitae vehicula quis, cursus ac risus. Nullam nibh ligula, rhoncus ut velit id, dignissim posuere diam. Donec ante justo, gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed matda vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quamm ligula, suscipit quis aliquet eu, eleifend at neque. 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, imperdiet vitae vehicula quis, cursus ac risus. Nullam nibh ligula, rhoncus ut velit id, dignissim posuere diam. Donec ante justo, gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quam id arcu consequat, nec porttitor nisl molestie. Ut quam ligula, suscipit quis aliquet eu, eleifend at neque. 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, imperdiet vitae vehicula quis, cursus ac risus. Nullam nibh ligula, rhoncus ut velit id, dignissim posuere diam. Donec ante justo, gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quam id arcu consequat, nec porttitor nisl molestie. Ut quam ligula, suscipit quis aliquet eu, eleifend at neque.
</div>

    <div id="footer">gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quam id arcu consequat, nec porttitor nisl molestie. Ut quam ligula, suscipit quis aliquet eu, eleifend at neque.  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, </div>
    </body>

这里有一些知识,我的知识,我的知识,我的知识精英。Pellentsque ex-sem、vitae vehicula quis、cursus ac risus。不带舌苔,棱角和天鹅绒,高贵的钻石。不要做任何事,孕妇要做的事要做的事要做的事要做的事要做的事要做的事要做的事。阿利奎姆·波苏尔·艾库利斯·努克、塞德·马达·维尔·多洛·奎斯、森佩尔·布兰迪·图皮斯。阿利奎姆·波苏尔·亚库利斯·努克(Aliquam posuere iaculis nunc)和马蒂斯·韦利特·拉西尼亚(mattis velit lacinia)坐在一起。塞德·乌娜·马蒂斯,波苏尔·自由身份证,康斯奎特·安特。阿利夸姆是一个酒后驾车的人。阿利奎姆·马克西姆·尼伯·奈克·埃利特·萨格蒂,同侧马蒂斯的ac功效。罗汉果是一种水溶性植物。现在,我们坐在狮子座上。埃涅欧盟侵权要件。这是我的名字。在内克的埃利芬德,时间和力量。
Lorem ipsum dolor sit amet,是一位杰出的献身者。Pellentsque ex-sem、vitae vehicula quis、cursus ac risus。不带舌苔,棱角和天鹅绒,高贵的钻石。不要做任何事,孕妇要做的事要做的事要做的事要做的事要做的事要做的事要做的事。阿利奎姆·波苏尔·亚库利斯·努克(Aliquam posuere iaculis nunc)和马蒂斯·韦利特·拉西尼亚(mattis velit lacinia)坐在一起。塞德·乌娜·马蒂斯,波苏尔·自由身份证,康斯奎特·安特。阿利夸姆是一个酒后驾车的人。阿利奎姆·马克西姆·尼伯·奈克·埃利特·萨格蒂,同侧马蒂斯的ac功效。罗汉果是一种水溶性植物。现在,我们坐在狮子座上。埃涅欧盟侵权要件。这是我的名字。时间的长短取决于成本,而不是成本。我是利古拉,我是阿利奎特,内克的埃利芬德。
Lorem ipsum dolor sit amet,是一位杰出的献身者。Pellentsque ex-sem、vitae vehicula quis、cursus ac risus。不带舌苔,棱角和天鹅绒,高贵的钻石。不要做任何事,孕妇要做的事要做的事要做的事要做的事要做的事要做的事要做的事。阿利奎姆·波苏尔·亚库利斯·努克(Aliquam posuere iaculis nunc)和马蒂斯·韦利特·拉西尼亚(mattis velit lacinia)坐在一起。塞德·乌娜·马蒂斯,波苏尔·自由身份证,康斯奎特·安特。阿利夸姆是一个酒后驾车的人。阿利奎姆·马克西姆·尼伯·奈克·埃利特·萨格蒂,同侧马蒂斯的ac功效。罗汉果是一种水溶性植物。现在,我们坐在狮子座上。埃涅欧盟侵权要件。这是我的名字。时间的长短取决于成本,而不是成本。我是利古拉,我是阿利奎特,内克的埃利芬德。
怀孕的孩子们,我的孩子们。阿利奎姆·波苏尔·亚库利斯·努克(Aliquam posuere iaculis nunc)和马蒂斯·韦利特·拉西尼亚(mattis velit lacinia)坐在一起。塞德·乌娜·马蒂斯,波苏尔·自由身份证,康斯奎特·安特。阿利夸姆是一个酒后驾车的人。阿利奎姆·马克西姆·尼伯·奈克·埃利特·萨格蒂,同侧马蒂斯的ac功效。罗汉果是一种水溶性植物。现在,我们坐在狮子座上。埃涅欧盟侵权要件。这是我的名字。时间的长短取决于成本,而不是成本。我是利古拉,我是阿利奎特,内克的埃利芬德。Lorem ipsum dolor sit amet,是一位杰出的献身者。Pellentsque ex sem,

好的。我明白你想做什么。这就是你要找的。答案已经在小提琴上测试过了,下面的代码是为了你们的方便。您遇到的问题是bodyhtml元素就是一切。HTML元素就是可见空间所以答案是肯定的。不要100%地应用于HTML标记,只应用于BODY标记。

CSS

body{
    margin:0px;
    padding:0px;
    clear:both;
    color:#000;
    height:100%;
    display:block;
}
.container{
    height:80%;
    width:100%;
    background-color:#A00002;
    display:block;
}
#footer{
    width:100%;
    height:20%;
    background-color:#005C97;
    display:block;
}
HTML

<body>
  <div class="container">Here is some  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, imperdiet vitae vehicula quis, cursus ac risus. Nullam nibh ligula, rhoncus ut velit id, dignissim posuere diam. Donec ante justo, gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed matda vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quamm ligula, suscipit quis aliquet eu, eleifend at neque. 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, imperdiet vitae vehicula quis, cursus ac risus. Nullam nibh ligula, rhoncus ut velit id, dignissim posuere diam. Donec ante justo, gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quam id arcu consequat, nec porttitor nisl molestie. Ut quam ligula, suscipit quis aliquet eu, eleifend at neque. 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, imperdiet vitae vehicula quis, cursus ac risus. Nullam nibh ligula, rhoncus ut velit id, dignissim posuere diam. Donec ante justo, gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quam id arcu consequat, nec porttitor nisl molestie. Ut quam ligula, suscipit quis aliquet eu, eleifend at neque.
</div>

    <div id="footer">gravida vel dolor quis, semper blandit turpis. Aliquam posuere iaculis nunc, sed mattis velit lacinia sit amet. Sed sed urna mattis, posuere libero id, consequat ante. Aliquam ac pretium lectus, eu semper dui. Aliquam maximus nibh nec elit sagittis, ac efficitur ipsum mattis. Fusce rhoncus rutrum mi a sollicitudin. Praesent non arcu non lectus pharetra tincidunt eu sit amet leo. Aenean eu elementum tortor. Sed id erat quis nibh aliquet hendrerit. Phasellus tempus quam id arcu consequat, nec porttitor nisl molestie. Ut quam ligula, suscipit quis aliquet eu, eleifend at neque.  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ex sem, </div>
    </body>

这里有一些知识,我的知识,我的知识,我的知识精英。Pellentsque ex-sem、vitae vehicula quis、cursus ac risus。不带舌苔,棱角和天鹅绒,高贵的钻石。不要做任何事,孕妇要做的事要做的事要做的事要做的事要做的事要做的事要做的事。阿利奎姆·波苏尔·艾库利斯·努克、塞德·马达·维尔·多洛·奎斯、森佩尔·布兰迪·图皮斯。阿利奎姆·波苏尔·亚库利斯·努克(Aliquam posuere iaculis nunc)和马蒂斯·韦利特·拉西尼亚(mattis velit lacinia)坐在一起。塞德·乌娜·马蒂斯,posuere libero id,康塞克