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实现信纸/同学录效果的示例代码
Dec 11 HTML / CSS
CSS3 中的@keyframes介绍
Sep 02 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
Jul 01 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
May 19 HTML / CSS
html5 Canvas绘制线条 closePath()实例代码
May 10 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
Dec 11 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
Feb 19 HTML / CSS
使用canvas压缩图片大小的方法示例
Aug 02 HTML / CSS
html5利用canvas实现颜色容差抠图功能
Dec 23 HTML / CSS
HTML5单选框、复选框、下拉菜单、文本域的实现代码
Dec 01 HTML / CSS
从QQtabBar看css命名规范BEM的详细介绍
Aug 07 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
JS求平均值的小例子
2013/11/29 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python查看微信好友是否删除自己
2016/12/19 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
python Xpath语法的使用
2020/11/26 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
中级会计大学生职业生涯规划书
2014/09/16 职场文书
六查六看剖析材料
2014/10/06 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
离婚民事起诉状
2015/08/03 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python