position的static和unset区别

1,650 阅读1分钟

MDN Web Docs

理论上来说,全部 position 的取值有8个: position:static | relative | absolute | fixed | sticky |  initial | inherit | unset

其中最常用的是 staticrelativeabsolutefixedsticky

initialinheritunset 是css的关键字,任何css属性的取值都可以设置这几个值

static与unset的区别

position: static

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

position: unset 

如果CSS关键字 unset 从其父级继承,则将该属性重新设置为继承的值,如果没有继承父级样式,则将该属性重新设置为初始值。换句话说,在第一种情况下(继承属性)它的行为类似于inherit ,在第二种情况下(非继承属性)类似于initial。它可以应用于任何CSS属性,包括CSS简写属性 all 。

基于上面解释. 设置了position: unset等同于position:initial, 等同于position:static

什么意思呢?也就是当我们给一个 CSS 属性设置了 unset 的话:

  1. 如果该属性是默认继承属性,该值等同于 inherit
  2. 如果该属性是非继承属性,该值等同于 initial

举个例子,color为可继承样式, 所以color: unset等同于color:inherit, border为非继承样式, 则border:unset等同于border:initial

扩展阅读