What does unset value mean in CSS?
Asked Answered
R

1

8

I have a megamenu that is absolutely positioned, and as some of its parent elements need to have position:relative, I have to use position:unset on the direct parent. This works in Chrome and Firefox, however IE11 does not support unset or initial.

I can't simply remove the relative positioning from all of the parent elements as that will break other things, but I have to have the megamenu absolutely positioned relative to the page (fixed position does not work). Is there an alternative to unset that will work in IE11?

Regenerator answered 2/7, 2019 at 19:56 Comment(2)
That doesn't work. My megamenu is supposed to be the width of the whole page, and when I remove the parent relative positions I get that, but when I set the parent to postiion:static it only takes the width of the parent elementRegenerator
You're right. There was another position:unset above it that was throwing it off. Static worksRegenerator
P
7

unset means

If the cascaded value of a property is the unset keyword, then if it is an inherited property, this is treated as inherit, and if it is not, this is treated as initial. This keyword effectively erases all declared values occurring

In your case, position is not an inherited property so it will always consider initial

Each property has an initial value, defined in the property’s definition table.

For position, it's static So you can simply use position:static and it will behave the same as position:unset


Reference: https://drafts.csswg.org/css-cascade-3/


To make this more generic you have to either use:

  • property:inherit if it's an inhertied propety
  • property:<initial_value> if it's not an inhertied propety. Then you look at the property’s definition table to find the initial value.

enter image description here

https://developer.mozilla.org/en-US/docs/Web/CSS/position

Poser answered 2/7, 2019 at 20:12 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.