码迷,mamicode.com
首页 > 其他好文 > 详细

浮动和绝对定位的区别

时间:2015-01-07 14:33:17      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

先看看w3c关于浮动float和绝对定位absolute的讲解:

float:浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

absolute:设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

对于浮动float来说,它仅仅是浮动框脱离标准流,并不是去安全的脱离标准流,而绝对定位absolute是将元素框完全的脱离标准流从文档流中删除:

看看以下的例子:

绝对定位absolute

#div1 {
background:#666;
position: absolute;
top: 0px;
left: 0px;
/*float:left;*/
width:100px;
height:100px;
}
#div2 {
background:#093;
width:200px;
height:200px;
}
#div3 {
background:#363;
width:100px;
height:100px;
}
</style>
<body>
<div id="div1">
    1111111
    <p>1111111</p>
    <p>1111111</p>
</div>
<div id="div2">
    <p>2222222</p>
    <p>2222222</p>
    <p>2222222</p>
</div>
<div id="div3">
    <p>3333333</p>
    <p>3333333</p>
    <p>3333333</p>
</div>

技术分享  

浮动float:

#div1 {
background:#666;
/*position: absolute;
top: 0px;
left: 0px;*/
float:left;
width:100px;
height:100px;
}

#div2 {
background:#093;
width:200px;
height:200px;
}
#div3 {
background:#363;
width:100px;
height:100px;
}
</style>
<body>
<div id="div1">
    1111111
    <p>1111111</p>
    <p>1111111</p>
</div>
<div id="div2">
    <p>2222222</p>
    <p>2222222</p>
    <p>2222222</p>
</div>
<div id="div3">
    <p>3333333</p>
    <p>3333333</p>
    <p>3333333</p>
</div>

技术分享

对于浮动float它并没有把div2里面的内容222222遮住而绝对定位absolute把div2的内容覆盖,所以我们在使用浮动和绝对定位的时候需要注意到,虽然在有些情况下float和absolute都能达到效果,但是他们的区别我们不能忽视

jsFiddle:绝对定位absolute浮动float

浮动和绝对定位的区别

标签:

原文地址:http://www.cnblogs.com/cdwp8/p/4208124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!