Better z-indexing Using Isolation
Managing z-indexing can be a real pain at times. Dealing with many
different elements, all of which have to specify different z-index values
to ensure the correct stacking context. Thankfully, the CSS isolation
property can help remove some of the hassle.
When the isolation property is set to isolate, it will create a new
stacking context
for the element which it is applied to. This is useful to “isolate” the
z-index values of an element’s children so you are free to use any
z-index values without causing those children to “escape” the element.
.grandparent {
z-index: 20;
}
.parent {
isolation: isolate;
}
.child {
/* This will not overlap .grandparent, even though it's z-index is higher */
z-index: 100;
}I really hope to write a full blog post about z-index and stacking
context since it’s so difficult to explain in just a few short sentences.
Until then, read up on stacking contexts, z-index, and isolation and
you’ll thank yourself for doing so!