การวางตำแหน่งแบบสัมบูรณ์หมายความว่าองค์ประกอบถูกนำออกจากโฟลว์ปกติของเค้าโครงหน้าโดยสิ้นเชิง เท่าที่องค์ประกอบอื่น ๆ ในหน้าเกี่ยวข้ององค์ประกอบที่อยู่ในตำแหน่งที่แน่นอนก็ไม่มีอยู่ จากนั้นองค์ประกอบจะถูกวาดแยกต่างหากโดยเรียงลำดับ "ด้านบน" ของสิ่งอื่น ๆ ที่ตำแหน่งที่คุณระบุโดยใช้left, right, top and bottom
แอตทริบิวต์
เมื่อใช้ตำแหน่งที่คุณระบุด้วยแอตทริบิวต์เหล่านี้องค์ประกอบจะถูกวางไว้ที่ตำแหน่งนั้นภายในองค์ประกอบบรรพบุรุษสุดท้ายซึ่งมีแอตทริบิวต์ตำแหน่งของสิ่งอื่นนอกเหนือจากstatic
(องค์ประกอบของหน้าเริ่มต้นเป็นแบบคงที่เมื่อไม่มีการระบุแอตทริบิวต์ตำแหน่ง) หรือเนื้อหาของเอกสาร (เบราว์เซอร์ viewport) หากไม่มีบรรพบุรุษดังกล่าว
ตัวอย่างเช่นถ้าฉันมีรหัสนี้:
<body>
<div style="position:absolute; left: 20px; top: 20px;"></div>
</body>
... <div>
จะอยู่ในตำแหน่ง 20px จากด้านบนของวิวพอร์ตของเบราว์เซอร์และ 20px จากขอบด้านซ้ายของสิ่งเดียวกัน
อย่างไรก็ตามหากฉันทำสิ่งนี้:
<div id="outer" style="position:relative">
<div id="inner" style="position:absolute; left: 20px; top: 20px;"></div>
</div>
... แล้ว inner
div จะถูกวางตำแหน่ง 20px จากด้านบนของouter
div และ 20px จากขอบด้านซ้ายของเดียวกันเพราะouter
div จะไม่ได้ตำแหน่งด้วยเพราะเราได้กำหนดอย่างชัดเจนไปใช้position:static
position:relative
ในทางกลับกันการวางตำแหน่งสัมพัทธ์ก็เหมือนกับการระบุว่าไม่มีการวางตำแหน่งเลย แต่left, right, top and bottom
แอตทริบิวต์ "เขยิบ" องค์ประกอบออกจากเค้าโครงปกติ องค์ประกอบที่เหลือในหน้ายังคงได้รับการจัดวางราวกับว่าองค์ประกอบนั้นอยู่ในจุดปกติ
ตัวอย่างเช่นถ้าฉันมีรหัสนี้:
<span>Span1</span>
<span>Span2</span>
<span>Span3</span>
... จากนั้นทั้งสาม<span>
องค์ประกอบจะนั่งติดกันโดยไม่ทับซ้อนกัน
ถ้าฉันตั้งค่าวินาที<span>
เพื่อใช้การวางตำแหน่งสัมพัทธ์เช่นนี้:
<span>Span1</span>
<span style="position: relative; left: -5px;">Span2</span>
<span>Span3</span>
... จากนั้น Span2 จะทับซ้อนกันทางด้านขวาของ Span1 คูณ 5px Span1 และ Span3 จะอยู่ในตำแหน่งเดียวกันกับที่ทำในตัวอย่างแรกโดยเว้นช่องว่าง 5px ระหว่างด้านขวาของ Span2 และด้านซ้ายของ Span3
หวังว่าคงจะกระจ่างขึ้นสักหน่อย