Standardmäßig ist h1 ein Blockelement und wird in der Zeile nach dem ersten Bild gerendert, und das zweite Bild wird in der Zeile nach dem Block angezeigt.
Um dies zu verhindern, können Sie für h1 ein Inline-Flow-Verhalten einstellen:
#header > h1 { display: inline; }
Was die absolute Positionierung des img innerhalb des div müssen Sie das enthaltende Div so einstellen, dass es eine "bekannte Größe" hat, bevor dies richtig funktioniert. Meiner Erfahrung nach müssen Sie auch die Position Attribut weg von der Standard - Position ändern: relativ funktioniert für mich:
#header { position: relative; width: 20em; height: 20em; }
#img-for-abs-positioning { position: absolute; top: 0; left: 0; }
Wenn Sie das hinbekommen, können Sie versuchen, nach und nach die Attribute height, width, position aus div.header zu entfernen, um die minimal erforderlichen Attribute zu erhalten, um den gewünschten Effekt zu erzielen.
UPDATE:
Hier ist ein vollständiges Beispiel, das mit Firefox 3 funktioniert:
<!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>
23 Stimmen
Ich habe eine Liste mit allen Möglichkeiten der vertikalen Ausrichtung erstellt, die ich hier hinterlasse: jsfiddle.net/techsin/FAwku/1
3 Stimmen
Hier sind zwei einfache Methoden, um ein Element innerhalb eines div zu zentrieren, vertikal, horizontal oder beides (reines CSS): stackoverflow.com/a/31977476/3597276
1 Stimmen
Margin-top: auto und margin-bottom: auto (funktioniert in vielen Fällen).