2.5css定位-1个属性5个值

228 阅读2分钟

1. position

**absolute、fixed、relative都需要用rtbf设置,否则不会根据要求定位。

absolute:

  • 脱离文档流(拿出来,覆盖在后填补元素上面,空缺会被后面的元素填上),不占据空间,破坏布局空间。
  • 通过 top,bottom,left,right 定位。
  • 定位的起始位置(又是包含元素)选取其最近一个已经有定位设置父级-除了static!对象进行绝对定位,如果对象的父级没有设置定位属性,或者是static,absolute元素将以body文档本身进行定位,
  • 必须要有tblr值,否则定位也不会跟着父级元素走。而是按顺序走。
  • 可以通过z-index进行层次分级。:(如果想要后填充的元素覆盖在脱离出来的元素上面,就可以给填充元素设置更大的z-index)

fixed:固定位置

  • 固定在浏览器的窗口位置相对位置,和其他任何东西都没有关系。
  • 定位的起始位置:浏览器左上角
  • fixed 固定定位以后会使其脱离文档流,脱离文档流以后就会漂浮在页面上不会占据空间,导致以后的元素内容会上移,会被脱离文档流的元素遮挡

relative: 相对定位

  • 对象不可层叠不脱离文档流但是表现区脱离文本流占据空间不破坏空间布局
  • 定位的起始位置:自身静态位置
  • 并且可以通过z-index进行层次分级。
  • 相对于自己默认位置根据ltrb的值移动,可以被当作父元素

static :

  • 正常页面流
  • position属性的默认值。
  • 元素位置:根据源码位置由浏览器决定,此时tbrl和z-index属性无效
  • 元素之间不产生重叠。

sticky:

  • 类似relative和fixed的结合;一些时候是relative定位(定位基点是自身默认位置),另一些时候自动变成fixed定位(定位基点是视口)。
  • 不设置tblr,和relative一样。
  • 规则:当页面滚动,父元素开始脱离视口时,部分不可见,效果和fixed一样。

**offsettop,中需要自己和父级position

2. 5个属性

top

bottom

right

left

z-index