我们在进行页面架构的时候,一般会分成三个section:header、body、footer。如下面这个页面:
这个时候我们就需要对body部分进行最小高度设置,才能避免footer部分出现在页面中间的情况。比方说下面在这个写法:
.page-content-header {
min-height: 5%;
}
.page-content-body {
min-height: 100%;
}
.page-content-footer {
min-height: 5%;
}
这样的写法会让body部分有个充满页面大小的高度,footer部分自然会在页面的最低端,而且当body部分的内容超出了100%时,高度会自动撑开,不会出现溢出的情况。
但是,问题来了,火狐浏览器不兼容这种写法,min-height:100% 完全不生效,我们可以用以下方法来进行兼容:
.page-content-body {
min-height: 100%;
/*火狐兼容*/
min-height: 600px !important;
}
.page-content-body:after {
content:"";
visibility:hidden;
display:block;
clear:both;
height:0px;
}
首先我们用 !important 来对火狐浏览器做hack,设置一个最小高度600px,然后利用伪元素 :after来做样式清除,以达到当内容超出最小高度时,高度会相应增加的目的。
我们设置显示框类型display为块级元素block,设置clear为左右两侧都不允许浮动元素,我们插入的生成内容content为空,然后设置高度为0,将元素设置为不可见。
这样就能让Firefox也能实现最小高度和内容超出自适应了。