浮动和绝对定位的异同

相同点:

1、包裹性:用了浮动或绝对定位的容器,脱离了文档流,其占据的宽度,不再是父容器的宽度,而是它包裹的内容的宽度。

2、破环形:用了浮动或绝对定位的元素,脱离了文档流,其高度,不会算在父容器的高度里,因此,会撑破父容器。

不同点:

1、绝对定位可以摆脱父容器overflow的束缚,而float不能

2、用了绝对定位的元素,再用浮动是没有效果的

转载于:https://my.oschina.net/u/1992917/blog/362552

### CSS Float Position Absolute 的使用方法与差异 #### 使用方法 ##### Float 属性 Float 是一种用于控制元素如何与其他内容排列的方式。当应用 `float` 属性时,元素会尽可能地移动到容器的左侧或右侧,并让其他非浮动的内容环绕它[^1]。 ```css div { width: 200px; height: 200px; border: 2px solid black; float: left; /* 向左浮动 */ } ``` 上述代码展示了如何创建一个宽度为200像素、高度也为200像素并带有黑色边框的 `<div>` 元素,并将其设置为向左浮动[^2]。 ##### Position Absolute 属性 Absolute 定位允许将元素相对于最近已定位(即设置了 position 值不是 static 的)祖先元素进行精确放置。如果没有任何这样的父级,则基于初始包含块(通常是视口)。这使得绝对定位非常适合于需要精确定义位置的情况[^4]。 ```css div.absolute { position: absolute; top: 10%; left: 20%; width: 150px; height: 150px; background-color: green; } ``` 这段样式定义了一个绿色背景的小方块,距离页面顶部10%,左边20%的位置显示出来。 #### 差异对比 - **文档流影响** - 浮动元素仍然存在于标准文档流中,但是它们的行为类似于被移除了一样,因为后续兄弟节点可能会围绕着这些浮动对象流动[^3]。 - 绝对定位完全脱离了正常的文档流,这意味着即使有空间存在,也不会有任何其他元素尝试填充由绝对定位留下的空白区域。 - **布局行为** - 对于浮动来说,默认情况下同一行可以容纳多个浮动盒子直到没有足够的水平空间为止;而绝对定位则总是独立处理每个元素而不考虑周围的环境。 - **清除机制需求** - 当使用浮动能造成一些意想不到的效果比如父容器塌陷等问题时,可能需要用到 clear 或 overflow:hidden 来解决这些问题。 - 而对于绝对定位而言,由于其已经离开了正常文档流,因此通常不需要特别关注这一点。 综上所述,在选择使用哪种技术之前应该仔细评估具体应用场景的需求以及预期的结果是什么样的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值