admin管理员组

文章数量:1794759

css中的position属性

css中的position属性

position 属性指定了元素的定位类型。 position 属性的值有5个:

  • static(默认)
  • relative(相对定位)
  • absolute(绝对定位)
  • fixed(窗口)
  • sticky(粘性定位) 元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。 position属性
    • static
    • relative(相对定位)和absulote(绝对定位)
    • fixed定位
    • sticky定位
    • 重叠的元素
  • static

    HTML 元素的默认值,即没有定位,遵循正常的文档流对象。静态定位的元素不会受到 top, bottom, left, right影响。

    relative(相对定位)和absulote(绝对定位)

    css position 相对定位和绝对定位

    relative:相对于原来位置移动,元素设置此属性之后仍然处在文档流中,不影响其他元素的布局 absolute:定位是相对于离元素最近的设置了绝对或相对定位的父元素决定的,如果没有父元素设置绝对或相对定位,则元素相对于根元素即html元素定位。设置了absolute的元素脱离了文档流,元素在没有设置宽度的情况下,宽度由元素里面的内容决定。脱离后原来的位置相当于是空的,下面的元素会来占据位置。 脱离文档流的效果 类似于 word 里面的图片 浮于文字上方。 例如: 在所有元素都是默认position的情况下,如图: 当第二层箱子添加了position:relative和top:60px和left:60px之后:

    很明显,第二层箱子距离原本的位子向右和下分别移动了60px,且后面的元素保持原有的队形跟着移动,但是将父元素最外层箱子的下半部分给覆盖住了。 然后,如果在box1上添加position:absulote和left:60px、top:60px,就会变成: 当top:-60px对比: 离box1最近的 设置了relative或absolute的父级元素 是第二层箱子,所以box1的位置随第二层箱子的变化而变化。 box1就浮在了文档流上方,top的效果如上图。 box1中没有设置宽度,在设置了absulote之后,宽度就由内容决定了。 如果第二层箱子没有设置relative,box1会根据HTML定位。

    fixed定位

    元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动,没错就是你想的那样,像一个不能移动的悬浮窗。

    sticky定位

    sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位。 position: sticky; 基于用户的滚动位置来定位。

    粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

    元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

    重叠的元素

    元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

    z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面) 一个元素可以有正数或负数的堆叠顺序: 菜鸟教程实例 具有更高堆叠顺序的元素总是在较低的堆叠顺序元素的前面。

    注意: 如果两个定位元素重叠,没有指定z - index,最后定位在HTML代码中的元素将被显示在最前面。

    内容参考:菜鸟教程 CSS Position(定位)

    本文标签: 属性cssposition