[问题] 关于float

楼主: imasaka1117 (Teddy)   2016-03-24 15:12:01
大家好
小弟目前在学习float
先看问题点QQ
http://imgur.com/LygkXZq
若是在容器里面使用float
则容器就不会吃到使用float元素的高度
所以page_foot会往上跑
只是为什么page_foot里面的内容没有往上跑呢?
如果说float不会影响在float之后的元素
那照理说page_foot应该不会往上跑才对(背景设为红色)
以下为css和html的原始码QQ
css
#main_background {
width:720px;
padding:10px;
border:5px solid black;
background-color:#FFFFCC; /* H */
margin:0 auto; /* WZ0AkZ
}
#page_title {
width:720px;
height:30px;
background-color:#993333; /* ` */
}
#main_menu {
float:left;
width:150px;
height:110px; /* 540-30=510 */
background-color:#663399; /* */
opacity: 0.5
}
#page_content {
float:right;
width:570px; /* 720-150=570 */
height:110px; /* 540-30=510 */
background-color:#66FF99; /* */
opacity: 0.5
}
#page_foot {
width:720px;
height:30px;
background-color:#FF0000;
}
html
<body>
<div id="main_background">
<div id="page_title"></div>
<div id="main_menu"></div>
<div id="page_content"></div>
<div id="page_foot">测试</div>
</div>
</body>
感谢各位看完><"
作者: imbahunter (レオ)   2016-03-24 15:14:00
应该要用clear:left?
作者: NYSM (山米尔)   2016-03-24 16:58:00
浮起来了后面就往前跑了 用clear:both
楼主: imasaka1117 (Teddy)   2016-03-24 17:16:00
可是照理说测试应该也会往上跑才对
作者: heavenbetula (绿草)   2016-03-24 21:51:00
我也好好奇是什么原因
作者: No (you stay there)   2016-03-24 23:17:00
非 float 的文字或 inline element 会“围绕”float element把 footer 的 height 拿掉,接着逐步调小 content 的 width就会呈现出它的规则了接着可以再把 footer 的 width 也拿掉,加上 overflow: hidden将 footer 转为 block formatting context,会有更多东西可玩
作者: akccakcctw (947)   2016-03-24 23:29:00
http://imgur.com/kucEiNQ是因为被menu推出来 改一下position就可以了楼上讲得满清楚的

Links booklink

Contact Us: admin [ a t ] ucptt.com