I tried searching for this on Google, but to no avail.
Can someone point me to a good resource that explains the rendering and visibility rules for CSS ? Or if it is very simple, can someone please write it down here ?
To give you an example, let's say that I have 2 large divs, DIV_LARGE1
, DIV_LARGE2
, that are not contained within each other and a small div, DIV_SMALL
. Whe开发者_开发百科n DIV_SMALL
is defined within DIV_LARGE1
, I can see that part of it which falls inside DIV_LARGE1
, but the area that is shared with DIV_LARGE2
gets hidden beneath DIV_LARGE2
. I am displaying DIV_SMALL
(by setting its display:inline
) after the page has rendered (on some click), so it should not matter that DIV_LARGE2
comes after DIV_LARGE1
in the HTML code.
What takes precedence over what ? Since my smaller div has position:relative
and both the other divs (DIV_LARGE*
) have position:absolute
, I can infer that absolute positioning takes precedence over relative if the div is not defined inside it. But is this correct ? What are the precise rules ?
Phelios is correct, the issue you're running into is related to the z-index property. Here's a great article from SmashingMag that explains it in detail: http://www.smashingmagazine.com/2009/09/15/the-z-index-css-property-a-comprehensive-look/
For the tl;dr - positioned elements get stacked in the order they're placed in the html code, so your div_small inside the first large div is by default always going to be stacked "under" the second large div. You can fix this by setting the small div's z-index property in css.
精彩评论