网站首页 > 技术文章 正文
一、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 批处理自动生成图片自适应大小、以图片文件名为描述的图片网页
- 05-15总结雅虎前端性能优化技巧(16条)
- 05-15日常生活中吃雪莲果有养生功效也有危害
- 05-15API 安全之认证鉴权
- 05-15Chaosblade: 阿里一个超级牛逼的混沌实验实施工具
- 05-15膨来仙岛丨搞电竞的都是什么成分?
- 05-15大事全知晓!2022年新闻日历来了!
- 05-15你是有多久没看过麦田圈了?一篇文章全面回顾2015麦田圈季
- 05-15魔兽世界9.1 刻希亚寻找宝箱、稀有WA(转自nga)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)