让DIV设置Float后高度不自动增加

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的时候,可能会对页面表现带来影响,而且这种影响是不确定的,你最好是能在多个浏览器上测试你的页面

4.浮动外部元素,float-in-float

这种做法就是让父容器也浮动,这利用到了浮动元素的一个特性——浮动元素会闭合浮动元素。这种方式在 IE/Win 和标准兼容浏览器中都有较好的效果,但缺点也很明显——父容器未必想浮动就浮动的了,毕竟浮动是一种比较特殊的行为,有时布局不允许其浮动也很正常。

时间: 2024-08-02 05:53:36

让DIV设置Float后高度不自动增加的相关文章

CSS教程:div设置float后高度不自动增加

本来想把这个题目修改为"闭合浮动元素"或"清除浮动元素",但想了一下,还是不修改为好.因为从这个题目我们可以更加容易的看出,如果您没有闭合(清除)浮动元素,它将造成的后果是-----div的高度不能自动增加. 言归正传 目前用来清除"闭合(清除)浮动"的方法,主要是一下四种: 1.    额外标签法 这种方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器.这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(

css 样式 ,给div设置了最小高度 当内容溢出最小高度时 之前给容器div设置的样式没作用

问题描述 css 样式 ,给div设置了最小高度 当内容溢出最小高度时 之前给容器div设置的样式没作用 解决方案 DIV设置最小高度DIV设置最小高度为什么我的设置的div最小高度不对 解决方案二: 不懂你要问什么东东,代码也没有.. 解决方案三: 你用浏览器调式调式呢 解决方案四: 你用的是谷歌调试吗?

Css div设置float left后高度不能自适应

在制作网页时,由于是使用CSS来格式化网页表格的,当我在li中设置了float:left:,发现有时候文章列表不能自适高度,今天有空就进行很多的尝试,都不能解决,非常让我着急. 因为li要横排,所以必须加上float:left属性,而ul是没有设高度,自适应的.但是现在发现,把li浮动到左侧以后,外层的ul高度没有包裹住li,高度是0.其实,这是因为float以后,没有清除浮动的原因. 所以解决方法是在所有的li后,clear float:  代码如下 复制代码 <ul>  <li cl

div 使用float后自适应高度无效解决办法

 代码如下 复制代码 <style> #main{float:left;min-height:500px;} #l{float:left;margin-bottom:10px;margin-right:10px;padding:6px 10px;width:117px;} #r{float:right;margin-right:10px;padding-top:10px;width:864px;overflow:hidden;} </style>   <div id=&quo

C# DataGridVies禁止自动增加新行。

问题描述 datagridview编辑行后,下方自动增加一行.想要禁止,但如果采用这条语句:dataGridView1.AllowUserToAddRows=false;原本datagridview添加的行也无法显示出来.如图.AllowUserToAddRows=false时:编辑后下方自动增加了一行AllowUserToAddRows=true时:原有行也无法显示想实现编辑后,下方没有新增行,怎么解决啊?求助~~~! 解决方案 解决方案二:没有数据怎么编辑?至少在编辑前要加载数据的吧.解决方

margin设置为什么会宿小图片?float后其他div的文字内容怎么变位置了?

问题描述 margin设置为什么会宿小图片?float后其他div的文字内容怎么变位置了? 开始是这样 我给产品那个div设置:margin:20px后,如下,它上下扩展了20px,而左右却是自己缩小了20px,为什么会缩小 我给产品那个div float后,下面的div也跟着上来了,如下,只是后面div文字内容本来是一个居左一个居中的,为何都跑到可见部分的左和中去了? 解决方案 body设置了宽度,然后产品是在body里的,产品宽度就是body宽度减去左右padding和border,设置了m

总结几种解决子级div应float浮动让父级div高度不能自适应的办法【菜鸟收藏】

解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法.   最外层的父级DIV不能自适应高度-不能随对象撑开没有高度 当在对象内的盒子使用了float后,导致对象本身不能被撑开自适应高度,这个是由于浮动产生原因. 如何解决父div对象自适应高度,方法有三种,接下来DIVCSS5逐一介绍. 1.首先我们先看HTML源代码: <!DOCTYPE html> <html> <head> <meta c

jquery-文字太多了,设置固定高度后,其余文字自动隐藏,点击更多显示出来

问题描述 文字太多了,设置固定高度后,其余文字自动隐藏,点击更多显示出来 程序控制的循环,多条循环. 用jquery比较简单吧,小弟刚入门... 希望这段文字只在一行显示,后面有个更多按钮,点击更多显示其他内容,再次点击收回. 注意,这段文字是一个整体,需要的是控制高度后,点击更多显示全部.

css中为某个div设置高度,高度包括margin上下值吗?

问题描述 css中为某个div设置高度,高度包括margin上下值吗?高度具体包括哪些值或属性值呢? 解决方案 设置height就是高度了,margin是与另外一个对象的距离