CSS布局之浮动(float)和定位(position)属性的区别


Posted in HTML / CSS onSeptember 25, 2021

CSS 布局 - position 属性

position 属性规定应用于元素的定位方法的类型(static、relative、fixed、absolute 或 sticky)。

position 属性

position 属性规定应用于元素的定位方法的类型。

有五个不同的位置值:

static
relative
fixed
absolute
sticky

元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。

CSS 布局 - 浮动和清除

float 属性
float 属性用于定位和格式化内容,例如让图像向左浮动到容器中的文本那里。

float 属性可以设置以下值之一:

left - 元素浮动到其容器的左侧
right - 元素浮动在其容器的右侧
none - 元素不会浮动(将显示在文本中刚出现的位置)。默认值。
inherit - 元素继承其父级的 float 值
最简单的用法是,float 属性可实现(报纸上)文字包围图片的效果。

float: left|right; 可以自动排列自动折行, 但需要clear来配合清除浮动;display: inline-block 有些时候可以替代float实现相同的效果.

position: absolute|relative; 要配合top,left等定位;

使用:

position: absolute会导致元素脱离文档流,被定位的元素等于在文档中不占据任何位置,在另一个层呈现,可以设置z-index。PS的图层效果就是position: absolute。
float也会导致元素脱离文档流,但还在文档或容器中占据位置,把文档流和其它float元素向左或向右挤,并可能导致换行。图片的文字环绕布局效果就是float。
display的inline-block不脱离文档流,将block元素当作大型字符嵌入文档流内,类似于img或者input默认效果。

CSS布局浮动和定位属性的区别

CSS有三种基本的定位机制:普通流、浮动和绝对定位一、普通流 普通流中元素框的位置由元素在XHTML中的位置决定。块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin计算得到。行内元素在一行中水平布置。 普通流就是html文档中的元素如块级元素、行内元素依据他们的显示属性按照在文档

postion:relative是子块级元素面向父级元素的相对定位,定位关键字使用left/right/top/bottom。兄弟块元素之间相对进行定位,但是position移动后,原位置依然保留。而且随后的兄弟块元素定位基于被移走前的位置。

float:right/left是子块级元素流集合面向父级元素的定位,定位的关键词使用margin/padding。兄弟块元素之间进行相对的定位均基于移动后的新位置进行重新渲染,可以重叠,原位置被清空。

二者之中最大的差别就是位置保留。

人们也就利用这种差异,可以做出CSS代码的滑动门菜单。

三水点靠木小编补充

一般页面布局都是用float,但需要注意清除浮动,而一些特别的效果一般用positon,使用positon的元素可以在页面的任何位置出现,方便一些提示框,特效等。

具体的大家可以根据看到的页面F12,慢慢研究,就会发现有很多的乐趣、

 
HTML / CSS 相关文章推荐
CSS3 translate导致字体模糊的实例代码
Aug 30 HTML / CSS
CSS3中:nth-child和:nth-of-type的区别深入理解
Mar 10 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
Apr 24 HTML / CSS
HTML5使用DOM进行自定义控制示例代码
Jun 08 HTML / CSS
利用HTML5的新特点实现图片文件异步上传
May 29 HTML / CSS
HTML5学习笔记之html5与传统html区别
Jan 06 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
Jan 20 HTML / CSS
html5需遵循的6个设计原则
Apr 27 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
Aug 12 HTML / CSS
详解HTML5中CSS外观属性
Sep 10 HTML / CSS
使用HTML+Css+transform实现3D导航栏的示例代码
Mar 31 HTML / CSS
Canvas绘制像素风图片的示例代码
Canvas如何做个雪花屏版404的实现
使用canvas对video视频某一刻截图功能
Sep 25 #HTML / CSS
使用CSS实现一个搜索引擎的原理解析
sass 常用备忘案例详解
Sep 15 #HTML / CSS
关于HTML编码导致的乱码问题
Sep 04 #HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 #HTML / CSS
You might like
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php制作简单模版引擎
2016/04/07 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python正则表达式之作业计算器
2016/03/18 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
python nmap实现端口扫描器教程
2020/05/28 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
英国探险旅游专家:Explore
2018/12/20 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
运动员获奖感言
2014/08/15 职场文书
小学生学习保证书
2015/02/26 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
python for循环赋值问题
2021/06/03 Python
解决Oracle数据库用户密码过期
2022/05/11 Oracle
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android