HTML父元素里子元素浮动问题

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
div {
font-size:20px;
}
#header {
width:700px;
height:30px;
background:#ccc;
margin:0px auto;
}
#main {
width:700px;
margin:0 auto;
background:red;
}
#left {
width:200px;
height:400px;
background:green;
float:left;
}
#right {
width:100px;
height:500px;
background:blue;
float:right;
}
#footer{
width:700px;
height:100px;
margin:0 auto;
background:yellow;
clear:both;
}
</style>
</head>
<body>
<div id="header">header</div>
<div id="main">
<div id="left">left</div>
<div id="right">right</div>
</div>
<div id="footer">footer</div>
</body>
</html>

这是我在学习HTML的时候写的一段代码,这时候父元素背景的红色显示不出来,那个老师说了这么一句话他说:“当父元素没有指定高度时,并且它的子元素有浮动,这个父元素高度不会自动增加!!!”。这句话是什么意思,能解释这个问题吗?背景的红色为什么没显示出来?有高手能给解释一下吗?
展开
 我来答
39...1@qq.com
2012-08-25
知道答主
回答量:9
采纳率:0%
帮助的人:2.6万
展开全部
我想你用的是火狐吧。这里我就给你说下火狐和IE的区别吧,IE中的DIV高度即使你设成0PX,他的真实高也不会是0PX; 另外他的高度还会随着子元素的高度增加而增加,所以你在IE中是可以看到红色的DIV的。而在火狐中则相反,高度必须的指定,如果你不指定,那么在浮动时,他的高度就是0PX。所以你看不到红色的DIV,另外很多情况下,火狐和IE的效果不是一样的,特别是在用DIV布局的时候,DIV布局要求相当的高,一不注意就会出现放大缩写错位的问题。我通常都采用绝对定位和相对定位来布局,或者用table,希望能帮到你。
破山雕
2013-03-06
知道答主
回答量:23
采纳率:0%
帮助的人:15.1万
展开全部
父元素不写高度时候,在用一些切换效果的时候会有浮动效果,很小,firefox不会有浮动效果,不知道为什么,webkit的有
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haowebs
2012-08-27
知道答主
回答量:6
采纳率:0%
帮助的人:9319
展开全部
你需要在main的内部再添加一个子元素用来清除浮动的,可以这样做:
main中插入元素:<div style="clear:both"></div>你也可以把内联样式分离出来,
或者添加一个样式:
#main:after{content:"";display:block;height:0;clear:both;}
IE的话还可以这样:#main{height:1%;}
以上三个方法还不行的话,只能给main设定高度了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式