`
shfzhzhr
  • 浏览: 69681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DIV的高度自适应及注意问题

    博客分类:
  • Web
阅读更多

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

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

代码:
<style type="text/css">
     #aaborder:#000000 solid 5px}
     #bb{border:#00ffff solid 5px;}
     #ccborder:#0033CC solid 5px}
</style>
<div id="aa">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">
    #aaborder:#000000 solid 5px;height:50px}
    #bb{border:#00ffff solid 5px;}
    #ccborder:#0033CC solid 5px}
</style>
<div id="aa">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">
    #aaborder:#000000 solid 5px;}
    #bb{border:#00ffff solid 5px;float:left}
    #ccborder:#0033CC solid 5px;float:left}
</style>
<div id="aa">div
    <div id="bb">div</div>
    <div id="cc">div</div>
</div>

IE效果:              FF效果:    

修改后代码:
<style type="text/css">
    #aaborder:#000000 solid 5px;}
    #bb{border:#00ffff solid 5px;float:left}
    #ccborder:#0033CC solid 5px;float:left}
</style>
<div id="aa">div
    <div id="bb">div</div>
    <div id="cc">div</div>
   <div style="clear:both"></div> 
</div>
修改后效果: IE FF一致


4.另类的高度自适应
原理:
padding-bottom将列拉长变的一样高,而负的margin-bottom又使其回到底部开始的位置,同时,溢出部分隐藏掉了。此方法必须加文档信息才能正常显示
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<style type="text/css">
    #aaborder:#000000 solid 5px;overflow:hidden;} 
    #bb{border:#00ffff solid 5px;float:leftpadding-bottom:100000px;margin-bottom:-100000px; }
    #ccborder:#0033CC solid 5px;float:left;padding-bottom:100000px;margin-bottom:-100000px;}
    #dd{float:left}
</style>
<div id="aa">
    <div id="bb">div</div>
    <div id="cc">div</div>
   <div id="dd">div<br /><br /><br /><br /> <br /> </div>
</div>
效果: 

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

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

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

<style type="text/css">

    #aaborder:#000000 solid 5px;height:100px;}

    #bb{border:#00ffff solid 5px;float:leftheight:100%}

    #ccborder:#0033CC solid 5px;float:left}

</style>

<div id="aa">

    <div id="bb">div</div>

    <div id="cc">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%}

分享到:
评论
1 楼 hotsunshine 2011-03-30  
穿梭于IE FF Chrome之间,哈哈

相关推荐

    Iframe 高度自适应,js控制Iframe 高度自适应.docx

    此外,需要注意的是,在使用 iframe 高度自适应时,需要考虑浏览器的兼容性问题,以确保 iframe 的高度能够在不同的浏览器中正常工作。 在浏览器兼容性方面,需要考虑 Firefox、IE、Opera 等不同的浏览器,并且需要...

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

    Div即父容器不根据内容自适应高度,我们看下面的代码: 复制代码代码如下: &lt;div id=”main”&gt; &lt;div id=”content”&gt;&lt;/div&gt; &lt;/div&gt; 当Content内容多时,即使main设置了高度100%或auto。在不同浏览器下还是不能完好...

    iframe自适应高度(兼容目前所有主浏览器)

    iFrame 自适应高度(兼容所有主浏览器) iFrame 自适应高度是前端开发中常见的...iFrame 自适应高度是前端开发中需要注意的问题,需要深入探讨以解决 JS 操作 DOM 引起的高度变化问题,并且需要注意浏览器兼容性问题。

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

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

    div和css制作斜线示例分享

    提示要注意两点:1、DIV宽高的定义。2、DIV在 IE6 中默认是有高度的。 上图右边是我们要实现的效果,代码如下: 复制代码代码如下:&lt;div id=”box”&gt;&lt;/div&gt; &lt;p&gt;&lt;style type=”text/css”&gt;#box{width:0px; ...

    css中float left与float right的使用说明

    4、子元素全为浮动元素的元素高度自适应问题。 以下详细分析四个问题。 一、浮动元素自动变块级元素 首先说说块级元素和行内元素区别,简单的来说,块级元素独占一行,可以设置宽高以及边距,行内元素不会独占一...

    web前端开发中常见的多列布局解决方案整理(一定要看)

    多列布局 多列布局在web前端开发中也是较为常见的,比如常见的三列、四列及以上,列的布局使得单一的页面可以...需要注意的是背景颜色可以设置在p标签上,也可以设置在div标签上。 多列不定宽加一列自适应 这里讲解的案

    ASP嵩嵩图片管理系统V5.0

    8.优化图片详细页面显示效果,支持自动缩放,高度自适应, 9.增加图片式具栏式浏览特效功能 10.增加了独特的提示框。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B。特色功能 1.图片批量上传,...

    嵩嵩图片管理系统 v2.0

    本系统前台DIV+CSS编写,后台功能完整,图片展示支持自动幻灯片式播放,无设置无限级分类,可用作企业产品展示,摄影师作品展示,个人相册等多种图片展示。可同时批量上传图片,功能强大而实用。简洁而不简单。 ...

    网页系统管理

    本系统前台DIV+CSS编写,后台功能完整,图片展示支持自动幻灯片式播放,无设置无限级分类,可用作企业产品展示,摄影师作品展示,个人相册等多种图片展示。可同时批量上传图片,功能强大而实用。简洁而不简单。 注意...

    jQueryWaterfall:jQuery瀑布流的实现

    jQueryWaterfalljQuery瀑布流的实现-文件说明##index.html显示效果,...##style.css自定义css样式,应该注意每张图片宽度相同,高度自适应。##app.js效果实现具体代码,每行附有注释。##jquery-2.1.4.min.jsjQuery源码

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (3)针对页面自适应问题,本文结合渐进增强以及拥抱流式布局的思想,同时研究利用了移动设备的视口特性,实现跨分辨率、跨设备的页面自适应。 (4)针对系统的功能实现问题,通过结合利用原生态框架与HTML5的跨平台...

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    5) 更新了使用帮助.chm里的常见问题说明及CHM的编译方式。 6) 优化了控件部分的客户端代码。 &lt;br&gt; 2007/8/5 Version 3.2.7 Free &lt;br&gt;Updates: 1) 修正插入MSN、QQ、ICQ在线状态图标时会出现...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

    ExtAspNet_v2.3.2_dll

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

Global site tag (gtag.js) - Google Analytics