我把div的高度设置为100%.但是,它不会伸展到固定的页脚.
- #found-results {
- height: 100%px;
- margin-bottom: 50px;
- background: #CCC;
- }
我也想要绿色的盒子伸展到页脚. CSS是:
- .main {
- width: 606px;
- float: left;
- padding: 15px 0 0 16px;
- position: absolute;
- background: green;
- margin-left: 383px;
- }
现在,如果我添加高度:100%;对它来说,它似乎起作用,但是如果其中一个选项卡包含很多文本,那么它的扩展性就不够了.
任何帮助将不胜感激.
解决方法
在某种程度上,棘手的部分不是固定的页眉和页脚,或100%的高度;棘手的部分是等高列.通常,假冒等高列(例如,将grey-green background image添加到父容器)最好.与真实的等高列相比,这样做通常允许代码更简单,更灵活,更稳定.如果这个网站的布局过于笨拙,请尝试伪装等高列(如demo所示),看看是否有助于布局变得更易于管理.
据说,真正的等高列的基本选择如下:
> HTML表
> CSS tables
> CSS3 flexbox
> CSS3 grids
> JavaScript或jQuery
这是一个使用CSS表的真正等高列的JSFiddle demo.左列具有非常高的内容,右列具有较少的内容.在IE10,Firefox,Chrome,Safari和Opera中,该演示测试正常;然而,这可能仅适用于相对简单的布局.
这是一个similar demo using HTML tables,万一需要支持IE8.
伪造等高列
这是another demo,通过添加一个2-color background image来制作等高列.该演示在IE10,Safari和Opera中测试也很好.然而,与以前的版本不同,它更有可能支持复杂的页面布局.
HTML
- <div id="header">...</div>
- <div id="content" class="clearfix">
- <div class="column1">...</div>
- <div class="column2">...</div>
- </div>
- <div id="footer">...</div>
CSS
- html,body {
- height: 100%;
- ...
- }
- #header {
- position: fixed;
- top: 0;
- height: 120px;
- ...
- }
- #footer {
- position: fixed;
- bottom: 0;
- height: 60px;
- ...
- }
- #content {
- min-height: 100%;
- padding: 120px 0 60px 0;
- -webkit-Box-sizing: border-Box;
- -moz-Box-sizing: border-Box;
- Box-sizing: border-Box;
- background: url(some-two-color-background.png) repeat-y 53.6% top;
- ...
- }
- #content .column1 {
- float: left;
- width: 250px;
- }
- #content .column2 {
- float: left;
- width: 350px;
- }
注意:通过设置background-position属性来控制背景图像的明显列宽.这允许使用相同的通用背景图像来伪造任何显式宽度(px或%)的两列.或者,可以使用具有精确列大小的自定义背景图像来简化CSS.