外层div高度不随内层div高度改变的解决办法

当b1和b2都是float=left时候,a1层的高度不会被b1和b2的高度撑开。

<div id=“div1″>
    <div id=”div2″ style="float:left;height:200px;"></div>
    <div id=”div3″style="float:left;height:200px;"></div>
</div>

解决方法一:设置div1的display属性为table即可;
解决方法二:插入一个额外的标签
  这种方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器。这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(而且通常是无语义的)标签,是W3C推荐的方法:
<div style="clear:both;"></div>
解决方法三:使用after伪类
  这种方法就是对父容器使用after伪类和内容声明在指定的现在内容末尾添加新的内容。经常的做法就是添加一个“点”,因为它比较小不太引人注意。然后我们再利用它来清除浮动(闭合浮动元素),并隐藏这个内容。
  这种方法兼容性一般,但经过各种 hack 也可以应付不同浏览器了,同时又可以保证html 比较干净,所以用得还是比较多的。
复制代码代码如下:

#outer:after{
content:".";
height:0;
visibility:hidden;
display:block;
clear:both;
}
时间: 2024-10-01 11:43:27

外层div高度不随内层div高度改变的解决办法的相关文章

让div等块级元素水平以及垂直居中的解决办法

一.背景 我们在设计页面的时候,经常要把div等块级元素居中显示,而且是相对页面窗口水平和垂直方向居中显示,如让登录窗口居中显示.我们传统解决的办法是用纯CSS来让div等块级元素居中.在本文中,我将给大家讲述如何用CSS和jQuery两种方法让div等块级元素水平和垂直居中. 二.解决办法 1.CSS让div等块级元素水平居中 原理:让一个div等块级元素水平居中,直接用CSS就可以做到.只要设置了div等块级元素的宽度,然后使用margin设置边距0 auto,CSS自动算出左右边距,使得d

div里包含img底部多出3px的解决办法

如果将一个img放在div里面,你会发现在img下面无端端的就多出3px的空白出来.padding.margin.border都设为0,无效!那么怎么解决这个问题呢? 问题图: 解决后的效果: 这个Bug真是十分有意思,不过有N多种解决办法! 1.设置div{ font-size: 0} 2.设置img{ display: block} 3.设置img{ vertical-align:top;} 当然推荐第二种方法,让img对象成为块级元素.

margin塌陷现象(即在内层设置margin-top无效的解决办法)

有两个有嵌套关系的div,如果外层div的父元素的padding值为0,那么内层子div的margin-top或margin-bottom的值会转移给外层的父div,即magrin塌陷现象. 解决办法: 1.在父元素div上加上:overflow:hidden; 2.把margin-top外边距改成padding-top内边距: 3.父元素div产生边距重叠的边有不为0的padding或宽度不为0且style不为none的border;父元素添加padding-top:1px; 4.让父元素生成

外层div自适应内层div高度

最近在做项目的时候,写jsp页面,在显示一些数据时不知道数据的多少,这时候就需要外层div自适应内层div的高度. 在网上找了些方法,也是本人现在用的解决方法,这里只介绍一种,当然还有很多种解决方法. 如: 1 <div id="div_1"> 2 <div id="div_1_1"></div> 3 <div id="div_1_2"></div> 4 <div id="

[CSS][转载]内层div的margin-top影响外层div

参考 内层div的margin-top影响外层div——引出外边距合并 div嵌套导致子区域margin-top失效不起作用的解决方法 我使用的是在外层的div中添加 border: 1px solid transparent; 在上面参考方法中,给外层div 添加"overflow:hidden;"也实现了同样的效果.

CSS: 解决Div float后,父Div无法高度自适应的问题

在用CSS+DIV的布局中,经常会发现,当一个DIV float之后,如果他的高度超过了其父DIV的高度时,其父DIV的高度并不会相应的进行调整.要解决这个问题(也叫做闭合(清除)浮动),我们有四种办法: 1. 额外标签法 这种方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器.这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(而且通常是无语义的)标签.我个人比较喜欢这种方法,因为它简单.实用.浏览器兼容性好,而且这种方法也是W3C推荐的方法 <div

div里面的内容超出自身高度时,显示省略号

1.给DIV设置属性:width: 200px; text-overflow: ellipsis; overflow: hidden; 当div里面的内容总宽度找过 200PX的时候,超出的部分会以"..."的形式显示. 2.上面那个案例之适用于单行文本的现实,才会有效.但当div里面的内容出现多行的时候则不能达到预期的效果.下面是解决多行的时候显示"..."的方案. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

让2个并列的div根据内容自动保持同等高度js

有左右2个并列的div,2个div都不能限定高度.左div为导航,右div为内容.如何能让左div块自动获得和右div块相等的高度? 同时,也有网友提问到“如果右块高度比左块低,会不会导致左块的内容被溢出不显示之类的问题.应该是取左右2者的最高值吧来对齐吧”. 的确应该是哪个div Height值大,就将其值赋给Height值小的div,从而使2个div高度始终保持一致. function $(id){ return document.getElementById(id) } function

宽度高度不固定的div如何水平居中与垂直居中(转)

宽度高度不固定的div如何水平居中与垂直居中 很多新手在写css的时候经常遇到的一个问题,当div没有固定的宽度或者高度的时候,如何才能让div水平或者垂直居中显示. 如果div有固定宽度的话,用padding,margin都很容易实现.方法有很多种.不过经常遇到这种div没有固定的宽度高度的情况,我们就不能用margin,padding设置固定的距离了.这个问题让很多人头疼.而怎么样才能让这个div居中显示呢?其实这种情况解决的办法也是有很多种,js,css都可以实现. 这里主要介绍一下采用c