quote:
Op maandag 24 december 2007 23:46 schreef Swetsenegger het volgende:[..]
Bij relatieve positionering, wordt elk element relatief tov de voorgaande geplaatst.
Dus "top:10px;" zal het element bij absolute positionering 10 pixels vanaf de top van je browserscherm (het canvas) zetten en bij relatieve positionering 10 pixels vanaf de onderzijde van het voorgaande element.
Dat is niet correct, of eigenlijk: veel simpeler voorgesteld dan het daadwerkelijk is (wat haast nog erger is). Bij absolutie positionering wordt het element uit de normale flow gehaald en heeft dus ook geen invloed meer op volgende elementen.
Bij relatieve positionering wordt het element eerst geplaatst volgens de normale flow, en daarna pas verplaats relatief aan de positie die het element in de normale flow heeft. Alle opvolgende elementen worden dus ook gelayout alsof het relatief verplaatste element niet verschoven was. Stel dat een element een position:relative heeft en een left: -10px. dan wordt dit element gelayout en daarna 10 pixels naar links verplaatst. Stel dat hiernaast nog een element staat met position: relative en een left: 10px; dan staat deze dus NIET 10 pixels rechts van het element ervoor , maar 20 pixels. Beide elementen worden volgende de normale flow gelayout, en daarna wordt het eerste element 10 pixels naar links geschoven en het tweede element 10 pixels naar rechts.
Het is misschien handig om eens in de W3C CSS documentatie te lezen hoe het box-model werkt en hoe het 'visual formatting' model werkt. Misschien wat taaie kost maar het helpt wel te begrijpen hoe een browser de positie van het e.a. bepaald.
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.