โดยค่าเริ่มต้น h1 เป็นองค์ประกอบบล็อกและจะแสดงผลบนบรรทัดหลัง img แรกและจะทำให้ img สองปรากฏบนบรรทัดถัดจากบล็อก
หากต้องการหยุดสิ่งนี้ไม่ให้เกิดขึ้นคุณสามารถตั้งค่า h1 ให้มีลักษณะการไหลแบบอินไลน์:
#header > h1 { display: inline; }
สำหรับการวางตำแหน่ง img อย่างชัดเจนใน divคุณจะต้องตั้ง div ที่มี "ขนาดที่รู้จัก" ก่อนจึงจะทำงานได้อย่างถูกต้อง จากประสบการณ์ของฉันคุณต้องเปลี่ยนแอตทริบิวต์ตำแหน่งออกจากตำแหน่งเริ่มต้น -: ญาติทำงานให้ฉัน:
#header { position: relative; width: 20em; height: 20em; }
#img-for-abs-positioning { position: absolute; top: 0; left: 0; }
หากคุณสามารถทำให้มันใช้งานได้คุณอาจต้องการลบความสูง, ความกว้าง, แอตทริบิวต์ตำแหน่งออกจาก div.header เพื่อรับคุณลักษณะที่จำเป็นขั้นต่ำเพื่อรับเอฟเฟกต์ที่คุณต้องการ
UPDATE:
นี่คือตัวอย่างที่สมบูรณ์ที่ใช้กับ Firefox 3:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Example of vertical positioning inside a div</title>
<style type="text/css">
#header > h1 { display: inline; }
#header { border: solid 1px red;
position: relative; }
#img-for-abs-positioning { position: absolute;
bottom: -1em; right: 2em; }
</style>
</head>
<body>
<div id="header">
<img src="#" alt="Image 1" width="40" height="40" />
<h1>Header</h1>
<img src="#" alt="Image 2" width="40" height="40"
id="img-for-abs-positioning" />
</div>
</body>
</html>