Hallo,
Per Javascript will ich ein inframe vertikal zentriert auf die Seite bekommen. Das klappt ja mit der Zeile:
parent.document.getElementById('Datenbereich').style.top=(parent.document.body.offsetHeight/2)-(document.body.scrollHeight/2)
Doch so bleibt das iframe dann ja fest stehen. Und auch wenn ich nur die Angabe 50% mache sitzt es fest.
Wie aber hät ich denn die Möglichkeit das bei Änderung der Seitengröße sich dem das iframe anpasst?
Dafür ist CSS besser geeignet als JavaScript.
Beispiel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Beschreibung der Seite</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<style type="text/css">
div#festerInhalt {
width:190px;
}
iframe {
height:300px;
width:500px;
position:absolute;
top:50%;
margin-top:-150px;
left: 210px;
}
</style>
</head>
<body>
<div id="festerInhalt">
<h1>Überschrift</h1>
<ul>
<li>Navigationspunkt 1</li>
<li>Navigationspunkt 2</li>
<li>Navigationspunkt 3</li>
</ul>
<p>Textabsatz</p>
</div>
<iframe src="cssPositionFixed.html"></iframe>
</body>
</html>
Der Trick ist, dass der IFrame mit seiner Oberkante in der Mitte des ViewPorts positioniert ist (position:absolute; top:50%
) und dann aber per (margin-top:-150px
) um die Hälfte seiner Höhe wieder nach oben gerückt wird. Da bei jeder Seitengrößenänderung neu gerendert wird und damit das CSS neu wirkt, wird das dynamisch.
viele Grüße
Axel