本文和大家重点讨论一下DIV高度自适应及注意问题,主要包括父div高度随子div的高度改变而改变和子div高度随父亲div高度改变而改变两种情况。

DIV高度自适应及注意问题

积累了一些经验,总结出一些关于div高度自适应的技巧,希望有助于大家,转载请标明出处,谢谢。

一、DIV高度自适应(父div高度随子div的高度改变而改变)

1、如果父div不定义height、子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改变。

代码:

<style type="text/css">
#aa{border:#000000 solid 5px}
#bb{border:#00ffff solid 5px;}
#cc{border:#0033CC solid 5px}
</style>
<div id="aa">父div</div>
<div id="bb">子div</div>
<div id="cc">子div</div>
</div>

效果:IE、FF下一致

2、如果父div定义height,子div均为标准流的时候,在IE下父div的height随内容变化而变化,ff中则固定大小,如父div设置height:50px

代码:

<style type="text/css">
#aa{border:#000000 solid 5px;height:50px}
#bb{border:#00ffff solid 5px;}
#cc{border:#0033CC solid 5px}
</style>
<div id="aa">父div</div>
<div id="bb">子div</div>
<div id="cc">子div</div>
</div>

IE效果

FF下效果

3、如果子div使用了float属性,此时已经脱离标准流,父div不会随内容的高度变化而变化,解决的办法是在浮动的div下面,加一个空div,设置clear属性both

未加空div代码:

<style type="text/css">
#aa{border:#000000 solid 5px;}
#bb{border:#00ffff solid 5px;float:left}
#cc{border:#0033CC solid 5px;float:left}
</style>
<div id="aa">父div</div>
<div id="bb">子div</div>
<div id="cc">子div</div>
</div>

IE效果:

FF效果:

修改后代码:

<style type="text/css">
#aa{border:#000000 solid 5px;}
#bb{border:#00ffff solid 5px;float:left}
#cc{border:#0033CC solid 5px;float:left}
</style>
<div id="aa">父div</div>
<div id="bb">子div</div>
<div id="cc">子div</div>
<div style="clear:both;"></div>
</div>

修改后效果:IE FF一致

4.另类的DIV高度自适应
原理:
padding-bottom将列拉长变的一样高,而负的margin-bottom又使其回到底部开始的位置,同时,溢出部分隐藏掉了。此方法必须加文档信息才能正常显示
代码:

<style type="text/css">
#aa{border:#000000 solid 5px;overflow:hidden;}
#bb{border:#00ffff solid 5px;float:left;padding-bottom:100000px;margin-bottom:-100000px;}
#cc{border:#0033CC solid 5px;float:left;padding-bottom:100000px;margin-bottom:-100000px;}
#dd{float:left}
</style>
<div id="aa">父div</div>
<div id="bb">b子div</div>
<div id="cc">c子div</div>
<div id="dd">d子div<br/><br/><br/><br/><br/>div>
</div>

效果:

二、DIV高度自适应(子div高度随父亲div高度改变而改变)

在有边框的情况下,你会发现同一个div,在IE下的高度和在FF下的高度是不一样的,比如你设置了高度为100px的div,边框是border:5px;IE的高度是5+5+空白区域=100px,而FF下高度是100px的div是不包括高度的,只是空白区域的高度,如下图黑框的部分:

黑框的上方是对齐的,但是设置了同样的高度,效果却不一样,代码如下:

<style type="text/css">
#aa{border:#000000 solid 5px;height:100px;}
#bb{border:#00ffff solid 5px;float:left;height:100%}
#cc{border:#0033CC solid 5px;float:left;}
</style>
<div id="aa">父div</div>
<div id="bb">b子div</div>
<div id="cc">c子div</div>
</div>

如果没有设置边框,完全没有高度不一致的情况,子div适应父div很简单,如上面代码,只是在子div加了height:100%属性即可。如果设置了边框,可以把子div的高度设置为比父div小上下边框高度的值,比如在此例中,可把#bb中height改为100-5-5=90px,结果在IE和Mozilla中显示一致。

有一点要注意,如果父div是body的话,也就是说一个body套了一个div,让div适合body的大小的,必须设置body的高度才能实现子div随body改变而改变,body{height:100%}

DIV高度自适应及注意问题(转)的更多相关文章

  1. div高度自适应(总结:min-height:100px; height:auto;的用法)

    对于div高度自适应问题,我总是用一句话:height:auto来解决. 但是很多时候我们需要的是当div内部有内容时,高度会随着内容的增加和增加,当div中没有内容时,div能够保持一个固定的高度. ...

  2. 四种方法解决DIV高度自适应问题

    本文和大家重点讨论一下解决DIV高度自适应的方法,这里主要从四个方面来向大家介绍,相信通过本文学习你对DIV高度自适应问题会有更加深刻的认识. DIV高度自适应 关于DIV高度的自适应,一直是个让人头 ...

  3. CSS实现div高度自适应

    1.有时候,我们希望容器有一个固定高度,但当其中的内容多的时候,又希望高度能够自适应,也即容器在纵向能被撑开,且如果有背景,也能够自适应.在一般情况下,使用min-height即可解决.但是广大网民的 ...

  4. div高度自适应

    第一种: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  5. div高度自适应填充剩余部分

    在乐学一百的开发过程中,遇到了一个小乐Fm开发,需要跟百度fm差不多,上边一个条,下边一个条,中间部分填充.但是还不能固定高度,因为屏幕的宽高都不一样...height:100%是不可行的.搜了一圈, ...

  6. css中div高度自适应

    高度的自适应(父div高度随子div的高度改变而改变) 1.如果父div不定义height.子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改 ...

  7. div高度自适应的问题

    对象height:100%并不能直接产生效果,是因为跟其父对象有关. #center{height:100%;} 上面的css样式是无效的,不会产生任何效果. 需要改写:   html,body{ m ...

  8. Header 与 Footer 的 DIV 高度固定, 中间内容 DIV高度自适应,内容不满一页时,默认填满屏幕。

    一.需求: 页面布局分三大块: Header Body Footer 1.内容不满一页时,Footer 在屏幕最底部,Body 填充满 Header 与 Footer 中间的部分. 2.当缩小浏览器时 ...

  9. Vue中div高度自适应

    Vue中尽量不使用dom的高度计算 <template> <div :style="conheight"> </template> <sc ...

随机推荐

  1. 联想服务器X3650 M2 配置 RAID5 + 热备盘

    实验环境: 1.  服务器型号联想 System X3650 M2 2.  六块300G  SAS硬盘 实验目的: 配置RAID 5 ,搭建重要文件备份服务器. 标注:本教程六块硬盘,其中五块硬盘做R ...

  2. Linux set unset命令

    Linux  unset命令: 功能说明:unset是一个内建的Unix shell命令,在Bourne shell家族(sh.ksh.bash等)和C shell家族(csh.tcsh等)都有实现. ...

  3. 加密算法(对称加密)AES、DES (非对称加密)RSA、DSA

    目前主流的加密方式有:(对称加密)AES.DES        (非对称加密)RSA.DSA

  4. Http协议中常用字段总结(不定时完善中)

    1.Http协议概述 关于Http协议的发展,各种资料有很多,在此不再赘述,不明白的小伙伴儿可以去搜一下,Http报文分为请求报文和相应报文,由于Http是面向文本的,因此在报文中的每一个字段都是一些 ...

  5. Dependency Scopes(maven)

    Dependency scope 是用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态. 自从2.0.9后,新增了1种,现在有了6种scope: ...

  6. Yii2 session的使用方法(1)

    yii2打开session use yii\web\Session; $session = Yii::$app->session; // check if a session is alread ...

  7. Mac下给SD卡烧录树莓派系统

    1.mac 磁盘工具 抹掉sd卡 为fat 2. df -h 看清sd卡号 3. 卸载sd卡 diskutil unmount /dev/disk2s2 Volume UNTITLED on disk ...

  8. excel做回归分析的应用【风控数据分析】

    方法1     统计逻辑:统计一个loginname的所有去重的通讯录数C,统计这个Loginname对应的每个设备对应的通讯录c1,c2,c3…cn; X=(c1/c+c2/c+c3/c+….cn/ ...

  9. TradeStation简介

        TradeStation是美国一款经典程序化交易软件,支持股票.期货.外汇.期权等交易品种.它是由美国TradeStation公司开发,主要服务于美股.     TradeStation的设计 ...

  10. asp.net导出EXCEL的好方法!(好用,导出全部数据)

    1.调用方法: ExportExcel("application/ms-excel", "EXCEL名称.xls", GridView1, this.Page) ...