Position属性四个取值用法和区别
在初学css的过程中常常会碰到设置定位的问题,大多数初学者都是大概明白,如果不好好弄清楚将会给以后的开发带来困难,经过本小菜对其他文章的浏览,自我总结如下:

目录
Position属性四个取值用法和区别
目录
-static
-relative
-absolute
-fixed
-relative和absolute的区别
-z-index属性
·Position属性有以下四个取值:

static:静态定位,是position属性的默认值,表示无论怎么设置top、bottom、right、left属性元素的位置(与外部位置)都不会发生改变。

relative:相对定位,表示用top、bottom、right、left属性可以设置元素相对与其相对于初始位置的相对位置。

absolute:绝对定位,表示用top、bottom、right、left属性可以设置元素相对于其父元素(除了设置了static的父元素以外)左上角的位置,如果父元素设置了static,子元素会继续追溯到祖辈元素一直到body。

fixed:绝对定位,相对于浏览器窗口进行定位,同样是使用top、bottom、right、left。

四种取值中,除了static之外,其他属性都可通过z-index进行层次分级

-static
static(静态定位)是默认值,元素出现在正常的流中。不会受到top, bottom, left, right影响。

-relative
定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在。

注:元素脱离正常的文本流意思是外观位置发生了改变,即是实际页面的可以看到的变化,文本流的位置依然存在指的是默认的位置(设置之前的位置)还在,相当于“虽然设置了位置偏移,但元素的灵魂还在原地~”

他是默认参照父级的原始点为原始点定位元素,无父级则以文本流的顺序在上一个元素的底部为原始点定位元素位置,并配合top、bottom、right、left设置偏移确定元素定位:

一般情况下以父级的左上角为原定,在没有父级的时候,他是参照浏览器左上角,如果在没有父级元素的情况下,存在文本,则以文本的底部为原始点进行定位并将文字断开。

如果父级没有设定position属性,仍旧以父级的左上角为原点进行定位。

如果父级设定position属性,不管是取哪个值,都以父级的左上角为原点进行定位。如果父级有Padding属性,那么就以内容区域的左上角为原点,进行定位。
以上三点可以总结出,无论父级存在不存在,无论有没有TRBL,均是以父级的左上角进行定位,但是父级的Padding属性会对其影响。

-absolute
定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不再存在。(这里是与relative的第一个不同点)

注:跟relative一样,这里也是实际上可以看到的布局发生了变化,跟relative不同的是,此时它的“灵魂”不在原地,也不在新的位置,而是不复存在了。

在这里要注意别跟Fixed值混淆,absolute并不是永远根据浏览器窗口进行定位的,这是Fixed的特性,absolute要更加复杂:

一般情况下以父级的左上角定位,在没有父级的时候,他是参照浏览器左上角
(这与relative完全一致);
如果在没有父级元素的情况下,存在文本,则以它前面的最后一个文字的右上角为原点进行定位但是不断开文字,覆盖于上方。(这里是与relative的第二个不同点);

如果父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由偏移设置(top、bottom、left、right)决定;(这与relative完全一致)

如果父级设定position属性(无论是absolute还是relative),则以父级的左上角为原点进行定位,位置由偏移设置(top、bottom、left、right)决定;(这与relative完全一致)。
即使父级有Padding属性,对其也不起作用,说简单点就是:它只坚持一点,就以父级左上角为原点进行定位,父级的padding对其根 本没有影响。 (这里是与relative的第三个不同点)
-fixed
其实fixed和absolute是一样的,唯一的区别在于:absolute元素是根据最近的定位上下文确定位置,而fixed永远根据浏览器确定位置。

fixed元素与文档流无关,可重叠也不回影响其他元素布局,只一直根据浏览器左上角定位。

-relative和absolute的区别
特征    relative    absolute
在正常流中的位置    存在    不存在
无父元素但存在文本    以文字底部为原点并会断开文字    以最后一个文字右上角为原点并不断开文字
父元素的padding属性对元素位置有无影响    有影响    无影响
-z-index属性
z-index,又称为对象的层叠顺序,它用一个整数来定义堆叠的层次,整数值越大,则被层叠在越上面,当然这是指同级元素间的堆叠,如果两个对象的此属性具有同样的值,那么将依据它们在HTML文档中流的顺序层叠,写在后面的将会覆盖前面的。需要注意的是,父子关系是无法用z-index来设定上下关系 的,一定是子级在上父级在下。

总的来说就是:
1.先看元素的父子关系,子级在上父级在下;
2.再看元素的z-index定义的整数值大小,数值大在上,数值小在下;
3.如果是同一级元素并且z-index值相同,就看元素在html文档中流的顺序,先写的会被后写的覆盖。
注:使用static 定位或无position定位的元素z-index属性是无效的。

Position属性四个取值用法和区别相关推荐

  1. position属性的四种取值用法

    众所周知,css中position有四种取值,分别是static.fixed.relative.absolute.我们今天就来详细的掰扯掰扯这四个值. Position属性有以下四个取值: 1.sta ...

  2. css中position的4个取值的含义

    css中position的4个取值的含义 一.在我们书写css代码的时候,position取值有4个,分别是: 1. Absolute:绝对定位,是相对于最近的且不是static定位的父元素来定位 2 ...

  3. 类选择器选择非唯一属性无法精确取值的问题

    类选择器选择非唯一属性无法精确取值的问题 一.总结 一句话总结:因为做的操作并不是精确选取,因为执行了两次选择器,所以肯定不对啊. 二.类选择器选择非唯一属性无法精确取值的问题 1.截图 2.代码 1 ...

  4. mysqli操作数据库,连接和四种取值方法

    <?php header("Content-Type:text/html;charset=utf-8");//使用mysqli对象操作数据库//方法一://$_mysqli ...

  5. Position属性四个值:static、fixed、absolute和relative的区别和用法

    在用CSS+DIV进行布局的时候,一直对position的四个属性值relative,absolute,static,fixed分的不是很清楚,以致经常会出现让人很郁闷的结果.今天研究了一下,总算有所 ...

  6. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法

    讲一讲CSS的position/float/display都有哪些取值,它们相互叠加时的行为都是什么?  列出display的值,说明他们的作用.position的值, relative和absolu ...

  7. Java 中Map四种取值方式

    map的主要作用是什么? 可以通过创建一个map的实现类 来存放 数据 值 和值的描述 也可以通过描述去取得数据 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.此接口取代 ...

  8. CSS的定位 position属性的 absolute relative static fixed的区别及用法

    CSS中position一般是跟盒子结合做出效果的,浮动可以实现盒子在横向上的排列,但是如何实现在盒子上重叠另一个盒子的效果呢?就需要CSS的position来实现 position属性有四个,分别有 ...

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

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

最新文章

  1. cubemx pwm dma_红米K30S至尊纪念版翻车?被曝虽是LDC屏,却是PWM调光
  2. Verilog HDL 使用规范(一)
  3. Google新WorldSense预告片:独立VR
  4. Office SharePoint Server 2007 中的 Workflow
  5. 雅虎对提升网站性能的最佳实践(英文)
  6. hashmap中的hash扰动函数
  7. 微型计算机接口技术与汇编语言课后答案
  8. 本机找不到workstation 和 Computer Browser服务
  9. Nginx Location块中proxy_pass配置/路径问题
  10. Mac密码管理工具:1Password 7
  11. 将VMware迁移到阿里云分几步?!
  12. IPv4与IPv6地址转换
  13. 3D打印机USB联机打印是如何实现的?(以Cura插件USBPrinting为例)
  14. Android集成高德地图导航SDK、实现App内进行导航、打开高德App导航
  15. UE4中实现Cesium 3dtileset的压平
  16. 画出一阶系统单位阶跃响应、单位脉冲响应、单位斜坡响应曲线
  17. Criteria条件查询
  18. 电脑文件数据恢复有哪些方法?电脑怎么恢复已删除的文件数据?
  19. Android 5.0、6.0、7.0、8.0主要新特性
  20. 关于TCP快速重传的细节-重传优先级与重传触发条件

热门文章

  1. 闪拍网的商业模式分析
  2. C语言打印 *平行四边形
  3. 笔试题-2023-乐鑫-数字IC设计【纯净题目版】
  4. Xamarin 手动安装
  5. (五)Selenium自动化测试实战—PO模式
  6. python写入txt不覆盖_写入现有文件而不覆盖/擦除
  7. VMM安装freenas
  8. 深耕北美食品市场,唯链携手合作伙伴开展有机食品区块链追溯
  9. 安卓动态调试七种武器之孔雀翎 – Ida Pro
  10. 配置nginx网页缓存时间