一般情况下,页面是由页面流构成的。页面元素在页面流中的位置是由该元素在HTML文档中的位置决定的。块级元素从上向下排列(每个块级元素单独成行),而内联元素将从左向右排列,元素在页面中的位置随着外层容器的改变而改变。

在CSS中,提供了三种定位机制:普通流、定位(position)、浮动(float)。

position属性 :可以将元素从页面流中偏移或分离出来,然后设定其具体位置,从而实现更精确的定位。

position属性值:static | relative | absolute | fixed 。

position定位方式
1、position:static,正常流(默认值),元素在页面流中正常出现,并作为页面流的一部分,不能通过z-index进行层次分级。

2、position:relative ,相对定位,不脱离文档流,参考自身静态位置通过 top,bottom,left,right 定位,并且可以通过z-index进行层次分级。 示例:

对底部方块设置position:relative后,效果如下

3、position:absolute ,绝对定位,脱离文档流的布局,遗留下来的空间由后面的元素填充。通过 top,bottom,left,right 定位,定位的起始位置为最近的父元素(postion不为static),否则为Body坐标原点,可以通过z-index进行层次分级。在拖拽页面滚动条时,该元素随其一起滚动。 示例

对底部方块设置position:absolute后,效果如下

4、position:fixed ,固定定位,脱离文档流,相对于浏览器窗口进行定位,在拖拽页面滚动条时,该元素不会随其一起滚动,可以通过z-index进行层次分级。

脱离文档流导致的问题
我们知道如果使用position:absolute和position:fixed都会导致元素脱离文档流,由此就会产生相应的问题:子元素脱离文档流,父元素无法被撑开。
解决方案:1、在js中设置父元素高度等于子元素的高度。2、给父元素强行设置高度(对于宽度导致的类似问题就强行设置宽度)。

z-index:设置元素之间的叠放顺序,只能在position属性值为relative或absolute或fixed的元素上有效。
基本原理:z-index的值可以控制定位元素在垂直于显示屏幕方向(z轴)上的堆叠顺序,值大的元素发生重叠时会在值小的元素上面。示例,z-index=1会重叠在z-index=0的元素之上:

CSS3理解position属性相关推荐

  1. 如何理解position属性里的sticky属性?

    首先,设置了position:sticky的元素并不会脱离文档流 当元素在区域内,元素不受定位的影响(top.left等设置无效) 当发生滚动,元素就要移出区域时,定位又会变成fixed,根据设置的l ...

  2. CSS中position属性(abusolute | relative | static | fixed)区别

    关于css3中position属性的定义: 转载于:https://www.cnblogs.com/tangjiao/p/9025934.html

  3. 半深入理解CSS3 object-position/object-fit属性

    半深入理解CSS3 object-position/object-fit属性 转载:https://www.zhangxinxu.com/wordpress/2015/03/css3-object-p ...

  4. 【拼爹坑爹不比爹】深入理解css中position属性及z-index属性

    总结:拼爹坑爹不比爹 1,定位移动:距左上角left+top;(移动后对于移动前:如果值为负数,则直接换成整数:如果值为整数,则直接改变相对方向.) 2,单一父元素不设值,子z-index才奏效:&q ...

  5. position属性的absolute和relative的理解

    概述: 每个定位的意义:相对定位是"相对于"元素在文档流中初始位置的,而绝对定位是"相对于"最近的已经定位的祖先元素. 主要: (其实对于定位的理解,主要问题是 ...

  6. CSS中position属性( absolute | relative | static | fixed )详解

    我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循 ...

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

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

  8. CSS盒子模型之CSS3可伸缩框属性(Flexible Box)

    CSS盒子模型(下) 一.CSS3可伸缩框(Flexible Box) 可伸缩框属性(Flexible Box)是css3新添加的盒子模型属性,有人称之为弹性盒模型,它的出现打破了我们经常使用的浮动布 ...

  9. 总结一下CSS中的定位 Position 属性

    在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absol ...

最新文章

  1. python计算机体系三层结构_Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证...
  2. [LeetCode] Length of Last Word - 最后一个单词的长度
  3. 网页加载的不同的方式、点击按钮显示一句话、jQuery中获取元素的方法
  4. OpenFOAM各版本说明介绍
  5. php如何写回调函数,php – 如何使用类方法作为回调函数?
  6. Android 截图,截取指定view截图
  7. 第八节:Task的各类TaskTResult返回值以及通用线程的异常处理方案
  8. 【数据库系统】核心知识归纳总结
  9. 信息安全工程师笔记-10种端口扫描技术概念
  10. Android 11 无法调起微信支付解决方案
  11. 迟思堂工作室编程规范:单片机C语言
  12. django 1.8 官方文档翻译: 2-5-1 管理器
  13. JavaScript 面试总结
  14. CSS 常用开发技巧
  15. 如何可以用cad迷你家装v2018
  16. 自动控制原理7.1---离散系统的基本概念
  17. SAP补提折旧-折旧的增加/减少
  18. R语言实战笔记后续修改
  19. html椭圆的写法,4.8 把圆变换为椭圆 - HTML5 Canvas 实战
  20. 这些例子感觉很实用,希望对你也有帮助

热门文章

  1. android 手机系统排行榜,手机系统排行榜出炉:第一名意料之中,MIUI排名令人意外!...
  2. Ceph 分布式存储
  3. OGC入门学习专栏(2.1) - SWE通用数据模型编码标准(写完所有小节再合)
  4. 稳定性全系列(二)——如何做线上全链路压测
  5. LTE 各频段对应频点以及频率,频点号与频率之间的转换关系
  6. 20190122——回首向来萧瑟处,无人等在灯火阑珊处。 Java责任链
  7. 北航2022计算机软件基础期末C++复(预)习
  8. 对象及日期定时器、延时器
  9. AndroidStudio更改SDK路径以及AVD模拟器路径
  10. JavaScript设计模式总汇