float 与 absolute\relative定位的区别

示例代码参考地址:http://codepen.io/CodingMonkeyzh/pen/OVxGKL

总结参考地址:https://segmentfault.com/q/1010000002924699

在给元素定位的时候,float 和 absolute 定位都有可能会用到,以前没注意,最近发现了点奇怪的东西,所以过来总结一下:

float 与 absolute\relative定位

相同之处:

两者都会使元素脱离文档流,其他的盒子(仅仅是盒子,不包括盒子里面的文本!!)都会无视被定位元素的存在。

不同之处:

使用 float 定位的元素,其他的盒子虽然会无视它的存在,但是其他盒子里的文本会看到这个元素的存在,并且给他让出位置!案例见此:https://www.zhihu.com/question/24529373 张秋怡 的回答;即:float 的元素还会在文档流上占据一个位置!

使用 absolute\relative 定位的元素,其他的盒子会无视它的存在,而且其他盒子里的文本也会无视它的存在,案例也可以见这里:https://www.zhihu.com/question/24529373 张秋怡 的回答;即:absolute的元素已经完全脱离文档流,文字可以无视它的存在。

示例:

body:

<div class="c1">

        float

    </div>
    <p>

        我是一段占位文字。。。我是一段占位文字。。。我是一段占位文字。。。我是一段占位文

    </p>

    <div class="c2">

        absolute

    </div>
    <p>

        我是一段占位文字。。。我是一段占位文字。。。我是一段占位文字。。。我是一段占位文字。。。我是一段占位文字。。。我是一段占位文字。。。我是一段占位文字。。

    </p>

css:

.c1, .c2 {
  width: 200px;
  height: 100px;
  line-height: 100px;
  text-align: center;
}
p {
  height: 100px;
  width: 400px;
}
.c1 {
  float: left;
  background: orange;
}

.c2 {
  position: absolute;
  background: green;
  left: 8px;
  top: 100px;
}

效果如图:

右侧 p 盒子无视了左侧的 float 元素,盒子插入,但是文字没有插入,文字看到了 float 的盒子float 的元素还会在文档流上占据一个位置!

右侧 p 盒子无视了左侧的 absolute 元素,盒子插入,文字也插入,文字无视了 float 的盒子absolute 的元素不会在文档流上占据一个位置!

时间: 2024-10-13 15:26:46

float 与 absolute\relative定位的区别的相关文章

float、absolute、inline-block三者区别

0.前言 float属性在css2中是一个热门的属性,被广泛应用于布局之中,同时由于不当使用float带来的问题也非常多,本文结合自己对float的理解以及实际项目中碰到float的相关问题,做一个详细总结,欢迎一起探讨,但未经同意禁止转载.以下是文章的目录 float的特性 float与absolute的区别 float与inline-block 清除浮动的方法及优缺点 1. float的特性 文字环绕 float 最早的设计目的是用于图片,使文字能够环绕在图片周围,像下面这样: 文字环绕效果

position:absolute/relative/fixed小结

1.绝对定位:position:absolute; 当一个div块的位置被定义为绝对定位absolute时,也就意味着它失去了文档流的位置,后面的文档流会紧跟着补上来接替它的位置.如果上下左右的绝对偏移量都是0,那么它将漂浮在原来的位置上,否则,会根据相对该元素外的第一个非static属性的元素进行定位,如果没有非static属性的父元素,则相对于body定位.当偏移后超出浏览器视线的向下或向右的内容不会被隐藏,而是会出现滚动条,但是向左或向上的内容超出后会被隐藏. 2.相对定位:positio

CSS定位布局display/float/position属性之间的关系/区别和如何使用取值行为机制

float: left|right; 可以自动排列自动折行, 但需要clear来配合清除浮动;display: inline-block; 有些时候可以替代float实现相同的效果.position: absolute|relative; 要配合top,left等定位; position: absolute会导致元素脱离文档流,被定位的元素等于在文档中不占据任何位置,在另一个层呈现,可以设置z-index.PS的图层效果就是position: absolute. float也会导致元素脱离文档流

一起学HTML基础-格式与布局fixed/absolute/relative/z-index/float

很多网页都存在一个悬浮的操作条或者广告区,无论如何上下滚动网页,操作条或广告区都不会动,这个就是div制作,位置锁定在屏幕指定位置,现在我们就学习下网页的格式与布局. position 位置,来给div定位 1.position:fixed;锁定位置(相当于浏览器窗口的位置),默认层数最高.例如有些网站的右下角弹窗. 练习:在右下角做一个弹窗,锁定位置,不随网页滚动而滚动. 步骤: 一.先做一个文字的弹窗 <head> <meta http-equiv="Content-Typ

css中position属性(absolute|relative|static|fixed)的区别

position属性的相关定义:static:无特殊定位,对象遵循正常文档流; relative:对象遵循正常文档流; absolute:对象脱离正常文档流; fixed:对象脱离正常文档流 我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置.而其层叠通过z-

今天我们来谈谈绝对定位和相对定位的区别,和需要注意的问题;position:absolute|relative;

首先position:absolute|relative; 前者是绝对定位,后者是相对定位: position属性的四个值: static,relative,fixed,absolute; 重点重点重点: 相对定位元素经常用来作为绝对定位元素的容器块: absolute 定位使元素的位置与文档流无关,因此不占据空间. absolute 定位的元素和其他元素重叠.

CSS position属性absolute relative等五个值的解释

目前几乎所有主流的浏览器都支持position属性("inherit"除外,"inherit"不支持所有包括IE8和之前版本IE浏览器,IE9.IE10还没测试过),以下是w3school对position五个值的解释,需要的朋友可以参考下 其中absolute和relative是最常用的,fixed用得也比较多(其中IE6并不支持fixed). 1.absolute(绝对定位) absolute是生成觉对定位的元素,脱离了文本流(即在文档中已经不占据位置),参照浏

CSS position绝对定位absolute relative

常常使用position用于层的绝对定位,比如我们让一个层位于一个层内具体什么位置,为即可使用position:absolute和position:relative实现. 一.position语法与结构   -   TOP position语法: position : static absolute relative position参数:static : 无特殊定位,对象遵循HTML定位规则absolute : 将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对

DIV CSS position绝对定位absolute relative教程篇

常常使用position用于层的绝对定位,比如我们让一个层位于一个层内具体什么位置,为即可使用position:absolute和position:relative实现. 一.position语法与结构   -   TOP position语法: position : static absolute relative position参数:static : 无特殊定位,对象遵循HTML定位规则absolute : 将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对