I'm just learning the positioning in CSS. Based on the article that I've found useful, I'd started to playing around.
With the following code, I cannot understand why the absolute grey-box div is outside of it's relative parent. I expected that the grey-box will be on the top-left corner of the container.
.container { background: lightblue; position: relative; } .box-orange { background: orange; height: 100px; width: 100px; position: relative; top: 100px; left: 100px; z-index: 2; } .box-blue { background: lightskyblue; height: 100px; width: 100px; /*position: static;*/ } .box-green { background: lightgreen; height: 100px; width: 100px; position: relative; top: -105px; left: 105px; z-index: 2; } .box-grey { background: grey; height: 100px; width: 100px; position: absolute; } <div class="container"> <div class="box-orange"></div> <div class="box-blue"></div> <div class="box-green"></div> <div class="box-grey"></div> </div> Also can't understand in the following case why the grey-box not in the top-left corner, but moved after the empty space left by the orange-box there. I've just moved the grey-box to the second place inside the container div.
.container { background: lightblue; position: relative; } .box-orange { background: orange; height: 100px; width: 100px; position: relative; top: 100px; left: 100px; z-index: 2; } .box-blue { background: lightskyblue; height: 100px; width: 100px; /*position: static;*/ } .box-green { background: lightgreen; height: 100px; width: 100px; position: relative; top: -105px; left: 105px; z-index: 2; } .box-grey { background: grey; height: 100px; width: 100px; position: absolute; } <div class="container"> <div class="box-orange"></div> <div class="box-grey"></div> <div class="box-blue"></div> <div class="box-green"></div> </div> All the detailed documentation (e.g. MDN) and tutorials that I've found just demonstrating very simple examples with 2-3 boxes.