`

DIV上中下布局高度自适应的研究

阅读更多
DIV上中下布局高度自适应的研究
一、背景
    在采用基于DIV+CSS的布局开发时,经常需要考虑各种浏览器版本的兼容性问题。
    常用的布局模式主要包括:左中右、上中下,以及两种模式的结合。
    在早期的开发,一般都采用Table标记的方式实现。
    当尝试采用基于DIV的模式,发现一切都变的似乎没那么简单了。特别是浏览器的兼容性问题,更加突出了。
二、需求
    本文只讨论上中下布局模式的实现,关于左中右模式的实现,相比较来说要简单得多了。如果时间充,我会另文详述。
    1.上部(top)Div高度固定100px,宽度100%;
    2.下部(footer)Div高度固定100px,宽度100%;
    3.中部(middle)DIV高度根据屏幕高度,自适应充满,宽度100%;
    4.用纯DIV+CSS实现,不采用脚本计算高度的方式;
    5.调整浏览器大小时,中部DIV能随着屏幕高度自适应。
三、HTML部分
    本部分非常简单,只是定义了三个DIV,分别对应:top、middle、footer
    <div id="header">
        抬头</div>
    <div id="middle">
        1页中<br />
        2页中<br />
        3页中<br />
        4页中<br />
        5页中<br />
        6页中<br />
        7页中<br />
        8页中<br />
        9页中<br />
    </div>
    <div id="footer">
        页脚
     </div>
四、CSS实现
    为了便于理解实现原理,分两部分说明:
    1.IE6下的实现
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
padding:100px 0;  
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
#middle{
position: relative;
top:-100px;
height:100%;

bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>  
    2.IE7、IE8下的实现
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
}
#middle{
position: absolute;
top:100px;
height:auto;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
五、全部CSS代码
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{

padding:0 !important;

padding:100px 0;

width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
#middle{

position: absolute!important;
top:100px!important;
height:auto!important;

position: relative;
top:-100px;
height:100%;

bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
分享到:
评论

相关推荐

    子div含float,父div高度自适应的div+css布局写法

    div+css高度自适应网页布局,子div含float,父div高度自适应,已经通过测试的浏览器:ie6、ie7、ie8、火狐、Chrome。 代码来源: http://www.positioniseverything.net/articles/onetruelayout/equalheight

    脚本控制DIV三行三列布局自适应高度.rar

    脚本控制DIV三行三列布局自适应高度

    关于div自适应高度/左右高度自适应一致的js代码

    在DIV和CSS进行网页布局中,DIV的自适应高度和自适应宽度是一个很常见的问题,本文将介绍左右自适应高度一致的Jquery与DIV高度自适应屏幕的js

    EasyUI布局 高度自适应

    如果在datagrid上方还有其他div的话,datagrid就不能很好的自动适应窗体。如查datagrid有分页控件,分页控件就看不到了。这个时候就应该用 easyui-layout来分隔窗体来使具体的内容放在easyui-layout不同的部分。这样...

    css控制宽度(高度)自适应100%

    demo包括: 1、多个div并排,宽度自适应100% - 左右两侧div宽度固定,中间DIV占满剩余区域 ; 2、多个div,高度自适应100% - 页面布局:头,身体,脚,占满整个屏幕;

    CSS+DIV布局(满屏自适应三行布局,兼容FF,div垂直居中)

    CSS+DIV写的,上下固定高度,中间自动适应高度满屏布局的页面~~写了好久的。ie6还有点问题。。。 兼容IE7,IE8,FF,Opera,Safari,谷歌浏览器 ------------------------- 附送一个 DIV垂直居中的页面~~~

    子元素div高度不确定时父div高度如何自适应

    每当进行页面布局时,我们都有这样的需求,就是当子元素div高度不确定时父div自适应高度,本文整理的多种方法可以解决此问题,感兴趣的朋友可以参考下

    脚本控制三行三列自适应高度DIV布局

    脚本控制三行三列自适应高度DIV布局

    设置DIV最小高度以及高度自适应随着内容的变化而变化

    在应用DIV布局时,有时会希望DIV的高度会随着内容的变化而变化,但是又想设置DIV的一个最小高度,特别是当DIV有背景色或背景图片时最小高度的设置会使视觉效果更好。可以通过如下属性的设置达到效果: 复制代码代码...

    里面的div怎么撑开外面的div让高度自适应

    但最近经常有朋友提到关于容器高度自适应的兼容性问题。在这里简单作答。 1.有些时候,我们希望容器有一个固定高度,但当其中的内容多的时候,又希望高度能够自适应,也即容器在纵向能被撑开,且如果有背景,也能够...

    jQuery实现布局高宽自适应的简单实例

    在页面布局(layout)时经常是上左右的框架布局并且需要宽、高度的自适应,div+css是无法实现(*hegz: div+css其实是可以实现的,利用jQuery比较容易实现浏览器的兼容性),所以需要js来辅助。 主要通过 jQuery....

    DIVCSS布局大全---12天学会DIV+CSS教程

    12天学会DIV+CSS从理论到实践的教程,强烈推介。 第一天:选择什么样的DOCTYPE 第二天:什么是名字空间 第三天:定义语言编码 ...第十天:自适应高度 十一天:不用表格的菜单 十二天:校验及常见的错误

    div ul li 嵌套后如何解决增加多个li后DIV高度自适应问题

    div ul li 嵌套的使用在网页布局中很常见,最主要的问题就是如何解决增加多个li后DIV高度自动适应问题,本文有个不错的示例,可以解决此问题,大家可以尝试运行下

    纯Css实现Div高度根据自适应宽度(百分比)调整

    在如今响应式布局的要求下,很多能自动调整尺寸的元素能够做到高宽自适应,如img,通过{width:50%;height:auto;}实现图片高度跟随宽度比例调整。 然而,用的最多的标签一哥Div却不能做到自动调整(要么从父级继承,...

    自己整理div+css网页标准版式布局(50种布局方式)

    2、自适应(弹性)宽度CSS版式布局 3、标准布局常见问题及解决办法 像素问题及解决办法 上边容器浮动后,下边的容器跟着浮动,造成页面错乱 当子元素浮动且未知高度时,怎么使父容器适应子元素的高度? 相对定位与...

    DIV CSS:网页一行两列背景自适应

    那就是左右两列怎么样实现背景高度自适应,及左边内容高于右边时,右边背景色也要和左边一样;右边内容高于左边时,左边背景色也要和右边一样; 当年为了实现这个,我在网上查过无数的文章,都没有很好的解决方案;...

    jquery自适应布局的简单实例

    代码整理 – uix.layout.js ...//用于调整 布局时将此元素高度铺满父容器(支持设置padding\margin\border) * 例: html1:div中 &lt;div class=uix-layout-container&gt; &lt;div class=uix-layout-north&gt;&lt;/

    脚本控制三行三列自适应高度DIV布局的代码

    用脚本控制div高度,慢慢缓冲效果不错

    React根据宽度自适应高度的示例代码

    有时对于响应式布局,我们需要根据组件的宽度自适应高度。CSS无法实现这种动态变化,传统是用jQuery实现。 而在React中无需依赖于JQuery,实现相对比较简单,只要在DidMount后更改width即可 Try on Codepen 需要...

Global site tag (gtag.js) - Google Analytics