Position

CSS position属性用于指定一个元素在文档中的定位方式。toprightbottom 和 left 属性则决定了该元素的最终位置。

在分析position元素定位之前,先来说说什么是文档流?(自我理解)

浏览器在默认情况下规定一个块元素在父元素内排列规则:

  1. 元素从上到下、从左到右排列
  2. 一个块级元素独占一行
  3. 行内元素不会独占一行
  4. 浮动元素在一行排不下则换行继续浮动

position 属性的五个值:

  • static
  • relative
  • absolute
  • fixed
  • sticky

一、static(默认值)

该关键字指定元素使用 正常 的布局行为,即元素在文档常规流中当前的布局位置。此时 toprightbottomleft 和 z-index 属性无效

二、relative

relative:相对定位

该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)。position:relative 对 table-*-group, table-row, table-column, table-cell, table-caption 元素无效

 语法:

div{
position:relative;
}

特点:

1. 参照相对没有定位前的自己

2. 有层级,后来居上-- 层级高

3. 占据自己原来的位置--在原来的文档流当中存在自己的位置

4. 不会改变元素的特征,行内还是行内,块级还是块级

5. 支持margin、padding、margin:auto

6. 不脱离文档流

三、absolute

absolute:绝对定位

元素会被移出正常文档流(脱离文档流),并不为元素预留空间,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。

语法:

div{
position:absolute
}

特点:

1. 脱离文档流

2. 提升层级不占原来的位置,后来者居上

3. 不支持margin:auto,支持margin

4. 参照物:默认参照body,绝对定位的元素位置相对于最近的 已定位 的祖先元素

5. 行内元素支持宽高,块级元素内容撑开宽高改变元素特性

6. 一般配合相对定位使用-- 父相子绝

四、fixed

fixed:固定定位

元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。

语法:

div{
position:fixed
}

特点:

1.参照物:相对 浏览器窗口 定位!

2.脱离文档流,提升层级

3.不支持margin:auto

4.可以改变元素特性,行内->块级

五、sticky

sticky:粘性定位(基于用户的滚动位置来定位)

元素根据正常文档流进行定位,然后相对它的最近滚动祖先包括table-related元素,基于toprightbottom, 和 left的值进行偏移。偏移值不会影响任何其他元素的位置。

粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换,表现为在跨越特定阈值前为相对定位,之后为固定定位。

注意:只有指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

语法:

div.sticky {
position: -webkit-sticky;
position: sticky;
top: 0;
}

---层级关系(z-index)

因为元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素,这里 z-index 属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)

  1. z-index--可以调换两个层的上下位置关系

  2. 值可为正也可为  ,值越大越在上面,默认为0

  3. 只能 同级元素对比

  4. z-index 只对 定位的元素有效,其他元素均无效

{
position:absolute;
left:0px;
top:0px;
z-index:-1; /* 置于底层 */
}

参考文档:

https://developer.mozilla.org/zh-CN/docs/Web/CSS/position

https://www.runoob.com/css/css-positioning.html

Position定位详解的更多相关文章

  1. CSS魔法堂:Position定位详解

    一.Position各属性值详解   1.  static :默认值,元素将按照正常文档流规则排列.   2.  relative :相对定位,元素仍然处于正常文档流当中,但可以通过left.top. ...

  2. css position定位详解

    position:static 默认方式: position:relative 相对定位,相对于原有位置进行移动,并且保留它在文件流中的占位: position:absolute 绝对定位,相对于最近 ...

  3. css相关,position定位详解

    CSS 有两个最重要的基本属性,前端开发必须掌握:display 和 position. display属性指定网页的布局.两个重要的布局,弹性布局flex和网格布局grid. 本文介绍非常有用的po ...

  4. css3——position定位详解

    最近热衷于前端的开发,因为突然发现虽然对于网站.应用来说,功能处于绝对重要的地位,但是用户体验对于用户来讲同样是那么的重要,可以说是第一印象.最近在开发当中发现以前对于css中的position的理解 ...

  5. 带你走进CSS定位详解

    学习CSS相关知识,定位是其中的重点,也是难点之一,如果不了解css定位有时候都不知道怎么用,下面整理了一下关于定位属性的具体理解和应用方案. 一:定位 定位属性列表 position top bot ...

  6. HTML中元素的position属性详解

    HTML中元素的position属性详解 转载自:https://blog.csdn.net/wangzunkuan/article/details/81540935   HTML中DOM元素有5种定 ...

  7. CSS进阶内容—浮动和定位详解

    CSS进阶内容-浮动和定位详解 我们在学习了CSS的基本知识和盒子之后,就该了解一下网页的整体构成了 当然如果没有学习之前的知识,可以到我的主页中查看之前的文章:秋落雨微凉 - 博客园 CSS的三种布 ...

  8. 小甲鱼PE详解之基址重定位详解(PE详解10)

    今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的系哦”.其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做,主要原因是因为P ...

  9. css 之position用法详解

    css  之position用法详解: http://www.jb51.net/web/77495.html

随机推荐

  1. [cf1491F]Magnets

    首先,只需要找到一个有磁性的位置,就可以通过$n-1$次判断其余磁铁是否有磁性,因此也就是要在$\lfloor\log_{2}n\rfloor+1$次中找到一个有磁性的位置 有一个$n-1$次的做法, ...

  2. 【PS】证件照修改尺寸

    证件照同时修改尺寸.分辨率.像素 2019-07-14  12:56:25  by冲冲 1. 需求 实现证件照自由切换一寸.小一寸.大一寸.二寸. 2. 步骤 ① 裁剪工具 -- 原始比例 -- 存储 ...

  3. Jmeter——变量嵌套函数使用(__V)案例分析

    jmeter版本:5.3 __V官方函数解释: (https://jmeter.apache.org/usermanual/functions.html#__V) 图1-1 解决问题:实现字符串拼接 ...

  4. Codeforces 295D - Greg and Caves(dp)

    题意: 给出一个 \(n \times m\) 的矩阵,需对其进行黑白染色,使得以下条件成立: 存在区间 \([l,r]\)(\(1\leq l\leq r\leq n\)),使得第 \(l,l+1, ...

  5. Codeforces 576D - Flights for Regular Customers(bitset 优化广义矩阵乘法)

    题面传送门 题意: 有一张 \(n\) 个点 \(m\) 条边的有向图,你初始在 \(1\) 号点,边上有边权 \(c_i\) 表示只有当你经过至少 \(c_i\) 条边的时候你才能经过第 \(i\) ...

  6. CF605E Intergalaxy Trips

    CF605E Intergalaxy Trips 考虑你是不知道后来的边的出现情况的,所以可以这样做:每天你都选择一些点进行观察,知道某天往这些点里面的某条边可用了,你就往这条边走.这样贪心总是对的. ...

  7. Codeforces 79D - Password(状压 dp+差分转化)

    Codeforces 题目传送门 & 洛谷题目传送门 一个远古场的 *2800,在现在看来大概 *2600 左右罢( 不过我写这篇题解的原因大概是因为这题教会了我一个套路罢( 首先注意到每次翻 ...

  8. jQuery ajax常用示例

    总结一下jQuery ajax常用示例 $.ajax({ type: "post", //类型get,post url: urls, //链接地址 data:{"id&q ...

  9. js浮点运算的坑

    1,js浮点型小数点运算的问题. 这么简单的计算,js竟然算的是错的,究其原因,是因为js小数在内存存储方式的原因. 具体原因: JavaScript 里的数字是采用 IEEE 754 标准的 64 ...

  10. 商业创新不能等?用友低代码开发平台YonBuilder为您加速!

    随着云计算.人工智能.物联网.大数据.5G等新一代技术的快速发展,越来越多的企业希望借助技术的力量加速数智化转型,期许通过更加敏捷和强大的应用系统推动企业的商业创新速度.但传统软件开发周期长.开发成本 ...