为什么把div里的元素设为浮动,background就没了?也就是div的height不随子级元素增大?

为什么加了ul{float:left;},div的background就失效了?我想知道原理。谢谢<html><head><styletype="text/css">di... 为什么加了ul{float: left;},div的background就失效了?我想知道原理。谢谢
<html>
<head>
<style type="text/css">
div{width: 80%;background: blue;}
ul{float: left;}
</style>
</head>
<body>
<div>
<ul><a href="#">首页</a></ul>
<ul><a href="#">DIV+CSS</a>
<li><a href="#">DIV1</a></li>
<li><a href="#">DIV2</a></li>
<li><a href="#">DIV3</a></li>
<li><a href="#">DIV4</a></li>
</ul>
展开
 我来答
tianye72
2013-03-09 · TA获得超过446个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:108万
展开全部
因为浮动的子元素会脱离文档流,不再占据父元素的空间,所以就等于父元素没有了高度,背景也就显示不出来了,低版本的ie(高版本的没试过)会自动扩大父元素的高度,但其他浏览器不会,所以如果子元素设成浮动,父元素又没有设置固定高度的情况下,给父元素加个overflow:hidden属性,就可以实现父元素的高度自适应了,像这样 div{width: 80%;background: blue;overflow:hidden;}
追问
给父元素加个overflow:hidden属性,就可以实现父元素的高度自适应了。这个我知道,我想知道是什么原理?
追答
详见另一个问题的回答
fifapp2010
2013-03-09 · TA获得超过651个赞
知道小有建树答主
回答量:573
采纳率:0%
帮助的人:284万
展开全部
需要清除浮动,
为容器div增加clearfix类
以下是class类的样式
---------------------------
.clearfix:before, .clearfix:after {
content:"";
display:table;
}
.clearfix:after{
clear:both;
overflow:hidden;
}
.clearfix{
zoom:1;
}
更多追问追答
追问
display:table;什么意思?
追答
此元素会作为块级表格来显示(类似 ),表格前后带有换行符。

参考资料: http://www.w3school.com.cn/css/pr_class_display.asp

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式