CSS: 解决Div float后,父Div无法高度自适应的问题
在用CSS+DIV的布局中,常常会发现,当一个DIV float之后,假设他的高度超过了其父DIV的高度时,其父DIV的高度并不会对应的进行调整。要解决问题(也叫做闭合(清除)浮动),我们有四种办法:
1. 额外标签法
这样的方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器。这样的方法浏览器兼容性好,没有什么问题,缺点就是须要额外的(并且一般是无语义的)标签。我个人比較喜欢这样的方法,由于它简单、有用、浏览器兼容性好,并且这样的方法也是W3C推荐的方法
<div style="clear:both;"></div>
或者使用
<br style="clear:both;" />
2. 使用after伪类
这样的方法就是对父容器使用after伪类和内容声明在指定的如今内容末尾加入新的内容。常常的做法就是加入一个“点”,由于它比較小不太引人注意。然后我们再利用它来清除浮动(闭合浮动元素),并隐藏这个内容。这样的方法兼容性一般,但经过各种 hack 也能够应付不同浏览器了,同一时候又能够保证html比較干净。
| #outer:after { content:"."; height:0; visibility:hidden; display:block; clear:both; } |
3. 设置overflow为hidden或者auto
这样的做法就是将父容器的overflow设为hidden或auot就能够在标准兼容浏览器中闭合浮动元素。只是使用overflow的时候,可能会对页面表现带来影响,并且这样的影响是不确定的,你最好是能在多个浏览器上測试你的页面。
| #outer { overflow:auto; zoom:1; } |
overflow:auto;是让高度自适应, zoom:1;是为了兼容IE6,也能够用height:1%;的方式来解决。
4. 浮动外部元素,float-in-float
这样的做法就是让父容器也浮动,这利用到了浮动元素的一个特性——浮动元素会闭合浮动元素。这样的方式在 IE/Win 和标准兼容浏览器中都有较好的效果,但缺点也非常明显——父容器未必想浮动就浮动的了,毕竟浮动是一种比較特殊的行为,有时布局不同意其浮动也非常正常。
看一下自己代码的样例吧:
<div style="overflow: auto;">
<s:iterator value="lstProductPicture" id="productPicture">
<div style="float:left;">
<img
src="../dms/get.html?path=<s:property value="#productPicture.path" />"
alt="" style="display: inline-block; width: 93px; height: 90px" /> <br></br>
<input type="button" value="删除" onclick="delpicture('${productInfo.id }', '${productPicture.path }');"/>
</div>
</s:iterator>
</div>
里面迭代会出现非常多div 里面的div会向左浮动,因而是父div的高度无法自适应问题的出现。
CSS: 解决Div float后,父Div无法高度自适应的问题的更多相关文章
- 解决子元素用css float浮动后父级元素高度自适应高度
1.在最后一个子元素后面清除浮动 2.父元素加over-flow:hidden;(副作用:子元素定位不能超出父元素的范围) 3.父元素也一样浮动(最笨的方法): 4.子元素使用inline-block ...
- 使用contenteditable+div模拟textarea文本域实现高度自适应
使用contenteditable+div模拟textarea文本域实现高度自适应 开发过程中由于需要在发送消息的时候需要有一个可以高度自适应的文本域,一开始是使用textarea并搭配auto-si ...
- css 父div如何包裹带有float属性的子div,float子div如何撑开父div
来自网络摘抄 原始代码 <style> #div1{border:1px solid red;float:left;} #div2,#div3{float:right;border:1px ...
- css实现遮罩层,父div透明,子div不透明
使用元素的opacity 属性,设置遮罩层的效果, 主要 样式是:background-color: #ooo; opacity:0.3; <div style="width:500p ...
- 前端页面div float 后高度 height 自适应的问题
最近在画项目页面的时候遇到了一个左侧div一旦加上float:left 属性后,设置其高度height:100% 不起作用,后来网上查了半天也没有找到很好的解决方案,只在csdn里发现了这个马上记录下 ...
- Position a child div relative to parent container in CSS: [设置 子DIV位置 跟 父DIV相关联]
最近调DIV的位置比较头疼,各种position: relative / absolute google到一篇好文章[http://www.webdevdoor.com/html-css/css-po ...
- DIV相对于父DIV底部对齐的实现方法
代码如下 <style type="text/css"> .box1 {border:1px #cccccc solid; width:500px; height:60 ...
- CSS - 解决使用浮动,父窗体不能撑高问题
浮动的父级元素一定要用 clear 清除浮动,否则高度会无法撑开.
- css解决select下拉表单option高度的办法
css在给select下拉表单设置样式如边框时可以轻松搞定,而我们在不喜欢其默认的下拉箭头的样式时试图通过background:url(图片路径)来修改之,则往往会出现浏览器的兼容性问题,在网上查了好 ...
随机推荐
- System单元对所有与COM相关的声明就这么多,需要倒背如流
是首先是VM表,但是和COM相关的函数地址都废弃了,这几个VM函数具体放在哪里,还得在研究: { Virtual method table entries } vmtSelfPtr = -; vmtI ...
- Linux段管理,BSS段,data段,.rodata段,text段
近期在解决一个编译问题时,一直在考虑一个问题,那就是Linux下可执行程序执行时内存是什么状态,是依照什么方式分配内存并执行的.查看了一下资料.就此总结一下,众所周知.linux下内存管理是通过虚存管 ...
- zoj2314(有上下界的网络流)
传送门:Reactor Cooling 题意:给n个点,及m根pipe,每根pipe用来流躺液体的,单向的,每时每刻每根pipe流进来的物质要等于流出去的物质,要使得m条pipe组成一个循环体,里面流 ...
- HADOOP2.6
LINUX下HADOOP2.6.0集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...
- 只能从脚本中调用在类定义上有[ScriptService]属性的Web服务问题的解决方案
ajax调用webservice中的接口时, 会出现[只能从脚本中调用在类定义上有[ScriptService]属性的...]的异常. 这是因为, 在.net3.5中, 访问web服务, 要对web服 ...
- Android -> 怎样避免Handler引起内存泄露
很多其它内容,可訪问个人博客www.liangfeizc.com 错误代码 假设在Activiy中通过内部类(Runnable)的方式定义了一个变量runnable, final Runnable r ...
- Linux SSH端口转发
SSH端口转发分为两种,一种是本地端口转发,又称为本地SSH隧道.一直是远程端口转发.SSH端口转发,还必须指定数据传送的目标主机,从而形成点对点的端口转发. 本地端口转发 假定有三台主机A. ...
- 【转】真正的Acmer
上海交大 戴文渊 大牛写的东西,建议大家看看 yiyiyi4321 2007-07-10 13:49:30.0 http://dwyak.spaces.live.com/?_c11_BlogPart_ ...
- c++多态的案例分析
近期在研究c++中多态的应用 ,当中遇到些许的疑问与问题,可是终于的结果是不容置疑的,以下记录下我的学习过程,以纪念本个知识点. 首先,是从一个案例開始的,题目大意是这种: 设定一个多边形的公共类,然 ...
- JDBC数据库编程常用接口(转)
JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...