css布局--父级元素高度自适应
2015-11-04 13:53
531 查看
在项目中需要实现这样一个布局,子元素相对于父元素绝对定位,其中子元素的高度是确定的,希望父元素能够自适应子元素的高度,实现两个div的底沿对齐。
html:
效果如下:
父元素的高度为0,子元素完全脱离了父元素,原因是:绝对定位的元素脱离了文档流,而高度自适应的前提是文档流布局,脱离文档流的子元素是不会参与高度计算的。
后来修改了代码,将子元素的绝对定位,改为相对定位,子元素没有脱离文档流,父元素根据子元素的高度(margin+padding+border+height)来计算自己的高度,但是依旧发现子元素仍由一部分超出在父元素之外,怎么办呢?
后来我试着给父元素加上padding-bottom,值就是子元素相对定位设置的top,例如.c 的top为10px,最后的结果就是可以自适应(两个div底沿对齐)。
html:
<head> <meta charset="UTF-8"> <title>Document</title> <style> .p{ background: yellow; border: 1px solid green; position: relative; } .c{ position: absolute; left: 10px; top:10px; background: red; width: 100px; height: 100px; } </style> </head> <body> <div class="p"> <div class="c">顶顶顶顶本部是基础元素的一部分,"mod"是必需内容单元,"grid"内独立或且可复用的功能区块,页面内容的主要承担者 要点: 自定义命名,以mod-为前缀 必须紧接着"grid"/"region" </div> </div> </body>
效果如下:
父元素的高度为0,子元素完全脱离了父元素,原因是:绝对定位的元素脱离了文档流,而高度自适应的前提是文档流布局,脱离文档流的子元素是不会参与高度计算的。
后来修改了代码,将子元素的绝对定位,改为相对定位,子元素没有脱离文档流,父元素根据子元素的高度(margin+padding+border+height)来计算自己的高度,但是依旧发现子元素仍由一部分超出在父元素之外,怎么办呢?
后来我试着给父元素加上padding-bottom,值就是子元素相对定位设置的top,例如.c 的top为10px,最后的结果就是可以自适应(两个div底沿对齐)。
相关文章推荐
- CHROME下去掉保存密码后输入框变成黄色背景样式
- div+css 如何让背景层半透明 内容不透明 并且能兼容ie6,ie7,ie8,ff
- CSS3语法-
- CSS基础(01)
- 压缩css样式后出现的的ie8下Background图片不显示的问题
- CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑等
- 解决360、猎豹浏览器等极速模式下css3兼容问题
- CSS控制文本自动换行
- 史上最全的CSS hack方式一览
- div+css兼容 ie6_ie7_ie8_ie9_ie10和FireFox_Chrome等浏览器方法
- CSS3 画桶图(类似数据库或者磁盘的抽象图)
- 如何通过css设置表格居中
- QT StyleSheet常见用法和样式
- css成名史
- 第一天CSS实战培训及笔记及感想
- css布局的学习笔记
- [css]我要用css画幅画(一)
- 动态调用CSS文件 JS文件的方法
- html和css基础
- Html+Css详解Css选择器,优先级与匹配原理