为什么父div没有被撑开

为什么父div没有被撑开:

在正常情况下,如果父对象没有设置高度,子对象能够将子对象撑开,但是如果子对象浮动且没有清除浮动的话,在IE8或者FF浏览器,父对象并不能够被撑开,在IE6下可以撑开。

代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.parent{
  border:1px solid red;
  width:500px;
}
.first,.second{
  float:left;
  height:100px;
  width:100px;
  border:1px solid blue
}
</style>
</head>
<body>
<div class="parent">
  <div class="first"></div>
  <div class="second"></div>
</div>
</body>
</html>

以上代码在IE6下可以撑开父div,但是在IE8或者FF浏览器下不能够被撑开。解决方法就是清除浮动。代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.parent{
  border:1px solid red;
  width:500px;
  overflow:hidden
}
.first,.second{
  float:left;
  height:100px;
  width:100px;
  border:1px solid blue
}
</style>
</head>
<body>
<div class="parent">
  <div class="first"></div>
  <div class="second"></div>
</div>
</body>
</html>

原文地址是:http://www.51texiao.cn/div_cssjiaocheng/2015/0519/1891.html

最原始地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=4699

时间: 2024-08-09 22:01:14

为什么父div没有被撑开的相关文章

html中子div用了浮动怎样让父div的大小自动撑开

浮动子div撑开父div的几种方法: (1)在父div中在添加一个清除浮动的子div<div style=" clear:both;"></div>,该div不设置任何样式,只用来清除浮动 (2)在父div的css样式中设置overflow:hidden;zoom:1; (3)设置父div也为浮动元素float:left:,这样设置的坏处是不能用margin:auto:实现居中 (4)设置父元素display:inline-block;,这样设置的坏处是不能用m

浮动子div撑开父div的几种方法、给select赋值、zoom样式的含义、实现select下拉框readonly

1.浮动子div撑开父div的几种方法: (1)在父div中在添加一个清除浮动的子div<div style=" clear:both;"></div>,该div不设置任何样式,只用来清除浮动 (2)在父div的css样式中设置overflow:hidden;zoom:1; (3)设置父div也为浮动元素float:left:,这样设置的坏处是不能用margin:auto:实现居中 (4)设置父元素display:inline-block;,这样设置的坏处是不能

HTML子div的宽度始终等于父div的宽度

最近我在做个人网页的时候,在一个div下插入了百度地图的API,这时问题来了,因为百度地图生成的是固定的大小,假如网页用手机端打开,会发现有部分地图看不到,为了解决这个问题,我把子div的宽度始终等于父div的宽度,这时就正常了 代码: <div id="bigone"> <div style="height:490px;border:#ccc solid 1px;-webkit-box-sizing:border-box;-moz-box-sizing:b

css-子div设置margin-top后,父div与子div一起下移

根据海玉的博客 这个问题发生的原因是根据规范,一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠. 再说白点就是:父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding.就会不断一层一层的找自己"领导"(父元素,祖先元素)的麻烦.只要给领导设置个有效的 border或者padding就可以有效的管制这个目无领导的margin防止它越级,假传圣旨,把自己

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

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

文字或是子div在父div里垂直居中

只有一行文字的话,直接用line-hight可以解决. 有多行文字或是想要子div在父div里垂直居中: 首先要理解vertical-align: middle只在table属性中才会垂直居中,应用到display:inline-block元素的话就是和隔壁元素居中对齐. 方法一: 在div里增加一个隐藏子元素,高度为100%和父div一样,这样再设置vertical-align: middle的话子div就会和父div一样高的子元素垂直居中对齐. <style> .box{ float: l

解决div和父div不上对齐

加一个vertical-align: top;就好了.原因就是inline-block会使元素向下对齐.这和padding-top,margin-top没有关系的.使用浮动就不会有这种情况了,当然会带来浮动清理问题. 如果父div是 相对定位 ,可以.lable{position:absolute;top:xxx,left:xxxx}

子DIV浮动(float)后父DIV高度自动失效解决方案

高度的自适应(父div高度随子div的高度改变而改变): 1.如果父div不定义height.子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改变. 2.如果父div定义height,子div均为标准流的时候,在IE下父div的height随内容变化而变化,如父div设置height:50px 如下所示,子元素div 本身具有高度和宽度,但由于其具有float:left属性后,其父元素div不具有高度. <html> <head&

子div块中设置margin-top时影响父div块位置的解决办法

在css中设置样式时,通常会遇到用子div块margin中设置margin-top时,父div块中就会随着子div的margin-top,也会和子div执行相同的margin-top的位置样式 解决办法1: 若子div块中使用margin-top,则在父div块中添加:overflow:hidden; 解决办法2: 若由于特殊情况不能在父div块中添加:overflow:hidden,那么在子div块中用padding-top代替margin-top;