网站首页 > 技术文章 正文
一、DIV高度自适应(父div高度随子div的高度改变而改变)
1、如果父div不定义height、子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改变。
代码:
<styletypestyletype="text/css">
#aa{border:#000000solid5px}
#bb{border:#00ffffsolid5px;}
#cc{border:#0033CCsolid5px}
</< span>style>
<dividdivid="aa">父div
<dividdivid="bb">子div</< span>div>
<dividdivid="cc">子div</< span>div>
</< span>div>
效果:IE、FF下一致
2、如果父div定义height,子div均为标准流的时候,在IE下父div的height随内容变化而变化,ff中则固定大小,如父div设置height:50px
代码:
<styletypestyletype="text/css">
#aa{border:#000000solid5px;height:50px}
#bb{border:#00ffffsolid5px;}
#cc{border:#0033CCsolid5px}
</< span>style>
<dividdivid="aa">父div
<dividdivid="bb">子div</< span>div>
<dividdivid="cc">子div</< span>div>
</< span>div>
IE效果
FF下效果
3、如果子div使用了float属性,此时已经脱离标准流,父div不会随内容的高度变化而变化,解决的办法是在浮动的div下面,加一个空div,设置clear属性both
未加空div代码:
<styletypestyletype="text/css">
#aa{border:#000000solid5px;}
#bb{border:#00ffffsolid5px;float:left}
#cc{border:#0033CCsolid5px;float:left}
</< span>style>
<dividdivid="aa">父div
<dividdivid="bb">子div</< span>div>
<dividdivid="cc">子div</< span>div>
</< span>div>
IE效果:
FF效果:
修改后代码:
<styletypestyletype="text/css">
#aa{border:#000000solid5px;}
#bb{border:#00ffffsolid5px;float:left}
#cc{border:#0033CCsolid5px;float:left}
</< span>style>
<dividdivid="aa">父div
<dividdivid="bb">子div</< span>div>
<dividdivid="cc">子div</< span>div>
<divstyledivstyle="clear:both"></< span>div>
</< span>div>
修改后效果:IEFF一致
4.另类的DIV高度自适应
原理:
padding-bottom将列拉长变的一样高,而负的margin-bottom又使其回到底部开始的位置,同时,溢出部分隐藏掉了。此方法必须加文档信息才能正常显示
代码:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
<styletypestyletype="text/css">
#aa{border:#000000solid5px;overflow:hidden;}
#bb{border:#00ffffsolid5px;float:left;
padding-bottom:100000px;margin-bottom:-100000px;}
#cc{border:#0033CCsolid5px;float:left;
padding-bottom:100000px;margin-bottom:-100000px;}
#dd{float:left}
</< span>style>
<dividdivid="aa">
<dividdivid="bb">子div</< span>div>
<dividdivid="cc">子div</< span>div>
<dividdivid="dd">子div<br/><br/><br/><br/><br/></< span>div>
</< span>div>
效果:
二、DIV高度自适应(子div高度随父亲div高度改变而改变)
在有边框的情况下,你会发现同一个div,在IE下的高度和在FF下的高度是不一样的,比如你设置了高度为100px的div,边框是border:5px;IE的高度是5+5+空白区域=100px,而FF下高度是100px的div是不包括高度的,只是空白区域的高度,如下图黑框的部分:
黑框的上方是对齐的,但是设置了同样的高度,效果却不一样,代码如下:
<styletypestyletype="text/css">
#aa{border:#000000solid5px;height:100px;}
#bb{border:#00ffffsolid5px;float:left;height:100%}
#cc{border:#0033CCsolid5px;float:left}
</< span>style>
<dividdivid="aa">
<dividdivid="bb">子div</< span>div>
<dividdivid="cc">子div</< span>div>
</< span>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%}
文/丁向明
做一个有博客的web前端自媒体人,专注web前端开发,关注用户体验,加我qq/微信交流:6135833
http://dingxiangming.com
- 上一篇: 用CSS实现居中的七种方法
- 下一篇: 三种新姿势帮你写出精美简历
猜你喜欢
- 2025-01-07 AUTOCAD——弧形文字排列
- 2025-01-07 CSS3页面布局方式详细介绍
- 2025-01-07 探索CSS position属性
- 2025-01-07 干货 | web前端入门基础知识
- 2025-01-07 前端入门——css Grid网格基础知识
- 2025-01-07 Markdown更改字体、颜色、大小,插入表格等方法
- 2025-01-07 伪元素的妙用2 - 多列均匀布局及title属性效果
- 2025-01-07 CSS-定位
- 2025-01-07 图解 CSS Grid 布局
- 2025-01-07 批处理自动生成图片自适应大小、以图片文件名为描述的图片网页
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)