我在互联网上发现了很多关于这个问题的讨论和问题,但是,他们似乎都不符合我的情况,解决方案对某种情况是非常具体的.
我在页面顶部有一个高度为100px的标题元素.我有一个div#sidebar元素浮动左边的宽度为250px,最后一个div#主要元素也浮动左边.
html,body和div#sidebar的高度是100%.
我的目标是让div#侧边栏一直延伸到页面的底部,而不管浏览器大小或内容大小.显然,如果内容长于可查看的页面高度,它应该正常地执行并且推动通过页面的末尾,引入滚动条.
然而,现在看来,页面高度似乎被计算为100%100px,引入滚动条,即使没有内容会推送div#sidebar.到目前为止,我发现没有任何解决方案可以工作,或者也许我错过了解决方案,不管怎样,我一直在这个时间已经有一个多小时了,我要把我的头发撕开了.
有没有一个非JavaScript的方法来使其正常工作,以阻止标题的高度被添加到100%?
这是我的HTML / CSS – 虽然我包括上面的所有相关细节,这应该有帮助.
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="utf-8" /> <title>My Awesome Template!</title> <link href="./stylesheet.css" rel="stylesheet" /> </head> <body> <header id="primary"> <h1>My Awesome Template!</h1> </header> <div id="sidebar"> <h1>Sidebar</h1> </div> <div id="main"> <h1>Main</h1> </div> </body> </html>
CSS:
html,body { margin: 0; padding: 0; height: 100%; } body { background: #fff; font: 14px/1.333 sans-serif; color: #080000; } header#primary { width: 100%; height: 100px; background: #313131; background-image: -webkit-gradient(linear,0 0,0 100%,from(#4d4d4d),to(#313131)); background-image: -moz-linear-gradient(#4d4d4d,#313131); background-image: -o-linear-gradient(#4d4d4d,#313131); background-image: linear-gradient(#4d4d4d,#313131); } header#primary h1 { margin: 0px 0px 0px 20px; padding: 0px; line-height: 100px; color: #ffffff; } #sidebar { float: left; width: 250px; background: #ccc; min-height: 100%; } #main { float: left; }
解决方法
你正在寻找臭名昭着的“人造柱”技术.这是
a tutorial.
基本上,你不能用简单的背景颜色来做,你必须使用重复的背景图像.