iframe problem

Urs

Legendäres Mitglied
ich hätte nie gedacht dass ich bei solch grundsätzlichen sachen wie iframe und table an grenzen stosse .... kann mir jemand meinen knopf lösen?

ausgangslage:
tabelle mitte zentriert

5 tabellen, wovon die 4. ein iframe beinhaltet welches den vorhandenen space 100% ausfüllen soll. 4 davon sind fix mit height="...px" formatiert.

probleme:

-die 5. tabelle wird nicht angezeigt
-das iframe erhält den scrollbalken nicht wenn der platz kleiner ist als der inhalt sondern später

schaut euch bitte mal den quelltext an und verkleinert mal das browserwindow um zu sehen was mit dem scrollbalken des iframes nicht stimmt.

das klingt alles banal einfach, so dachte ich auch, aber ich krieg das nicht hin. irgendwo muss ein denkfehler sein. findet jemand raus wo?

testfile: http://www.surfstart.ch/index_neu1.html

würde mich über hilfe freuen.

gruss

urs
 
Das Problem liegt glaub bei der Höhenangabe der Tabelle, die das IFrame beinhaltet. Wenn man dort die 100% weglässt (oder z.B. auf 50% setzt), ist die 5. Tabelle sichtbar. Und der Scrollbalken kommt dann auch sofort.

Frag mich aber bitte nicht, wie Du trotzdem den maximalen Platz fürs IFrame bekommen kannst ;-)
Ich denke, das Problem liegt im Mixen zwischen absoluter und relativer Positionierung.

Griessli
Irene
 
Hi Urs

Wiso machst Du das mit einem IFrame, würde es nicht einfachen mit einem Div Layer welcher die Option Overflow hat funktionieren?

Gruss René
 
Ciao Urs

Welcher lausige WYSIWYG-Editor hat Dir den diesen Code generiert?

Also, prinzipiel gilt, % und px Angaben nicht mixen! Das gibt immer Probleme! Früher, zu Zeiten des NS 4.7, stürzte der Broser sogar ab. Bei HTML-Tags wird übrigens "px" nicht geschrieben.. ( bei height hast du die werte mit "10px" angegeben )

Technologie:
Dieses Layout mit Verschachtelten Tabellen aufzubauen find ich nicht so gut, NS beispielsweise berechnet zu erst die am tiefsten verschachtelte Tabelle und geht dann hirarchisch immer eine Tabelle weiter nach drausen bis er beim Body-tag ankommt. das kann, bei komplizierten und mehrfach verschachtelten Seiten ziemlich lange dauern. wenn dann noch % werte angegeben sind, gehts um so länger.

Besser ist der aufbau mit layern und css. ich hab dir mal ein codesample angehängt welches Dein Layout abdeckt...(ist aber wirklich nur ein sample und kann bestimmt noch optimiert werden. nur im ie getestet)

Wenn Du wirklich einen Iframe haben möchtest... na ja...
Ich rate dir aber davon ab, vor allem wenn sich die Seite auf einem anderen Server befindet.
Wenn Du Daten aus einem anderen File einbinden möchtest, empfehle ich Dir AJAX. Hab ich selber schon ein paarmal eingesetzt.
Prädikat: genial!

Wenn Du einen Scrollbalken willst, machst wie z-web vorgeschlagen hat.

Hier der Code...

Gruss

Spaceman

CODE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Surfstart 2005 - Betaversion</title>
<style>
body
{
background-color:#ff0000;
margin:0px;
padding:0px;
spacing:0px:
}
.centerTitle
{
width:900px;
height:50px;
background-color:#dd0000;
}
.centerSuma
{
width:900px;
height:120px;
background-color:#aa0000;
}
.centerTicker
{
width:900px;
height:20px;
background-color:#990000;
}
.centerIFrame
{
width:900px;
height:1px;;
background-color:#dd0000;
}
.centerFooter
{
width:900px;
height:10px;
background-color:#550000;
}

</style>
<script>
function init()
{
var clientHeight = document.body.clientHeight

var iframeHeight = clientHeight - 50 - 120 - 20 - 10 -10;

document.getElementById("navFrame").height = iframeHeight;
document.getElementById("navFrameDiv").height = iframeHeight;

}

</script>
</head>
<body onLoad="init();" onResize="init();">
<center>
<div class="centerTitle">Titelbild</div>
<div class="centerSuma">suma</div>
<div class="centerTicker">ticker </div>
<div id="navFrameDiv" class="centerIFrame"><iframe id="navFrame" src="http://www.surfstart.ch/navigation.html" scrolling="auto" width="100%" height="100%"></iframe></div>
<div class="centerFooter">Footer</div>
</center>
</body>
</html>

 
@spaceman007

vielen dank für die ausführliche problemlösung.

also der lausige wysiwyg-editor befindet sich zwischen der tastatur und meinen schultern
blink.gif

ich wollte einfach mal was probieren.

die px habe ich erst geschrieben als es nicht funktionierte. sah dann aber dass dies keine abhilfe war ...
mad.gif


ich glaube das hauptproblem liegt schon dara dass pixel und % gemixe nicht funktioniert. aber wieso nicht, das sehe ich nicht ganz ein. logisch wäre es auf jeden fall.

heute abend werde ich mich mal schlau machen betreffend div's etc.

das iframe brauche ich um ein eingekauftes script in meine seite einzubauen.

deinen beispielcode werde ich heute ebenfalls noch testen und versuchen zu verstehen.

aussehen sollte es am ende ca so: http://www.surfstart.ch/index_neu.html aber ohne die erwähnten fehler.

@z-web

danke für den tip, ich werds mit einem div mal probieren.

@irene

danke für den hilfsversuch. es tut auch gut von einer experting zu sehen dass auch die nicht alles weiss
wink.gif

 
Hi nochmal..

@URS
unsure.gif
sorry wegen des WYSIWSG dings...
wink.gif


also... hab das mal kurz analysiert..


der ie berechnet die höhe anhand des parent Objekts (in deinem Fall 100%) minus die effektive höhe aller objekte welches hirarchisch auf gleicher stufe wie das mit mit 100% definierten objekt liegen aber im quellencode vor diesem sind....

mh.. kompliziert...also nochmals..

du hast 5 tabellen...

die erste ist 50px hoch, die zweite 120px, die dritte 20px, dann kommt das 100% ding und zum schluss der footer mit 10px.

die tables sind untereinander nicht verschachtelt, das heisst liegen hirarchisch auf der gleichen stufe. kommen wir nun zum quellencode.... tabelle 1, 2 und 3 sind vor der 100% tabelle , der footer ist danach...
kommen wir zur berechnung:
man nehme also 100% (so hoch ist die tabelle in der die anderen tabellen liegen), zähle die höhen der tabellen 1,2 und 3 ab.. und schon hat man die höhe der mit 100% definierten Tabelle... das nach der 100% Zelle noch ein table ist.. ist dem browser ziemlich egal, er ignoriert es einfach und zeigt er einfach nicht an...

das kannst du nachvollziehen indem du die 100% tabelle mal zwischen die 2 und 3 tabelle schiebst... dann wird die höhe der 100% tabelle anhand der höhen der tabellen 1 und 2 berechnet.. der rest wird ignoriert....

unsure.gif


na ja... nicht ganz logisch, aber das ist wahrscheinlich die erklärung für dein phänomen...

Grüsse ins "thal"

Spaceman007
 
wow

vielen dank für deine analyse. sowas habe ich gesucht. ich hasse es wenn was nicht geht was logischerweise gehen sollte. dies ist aber ne logische erklärung wieso meine logik nicht logisch ist.

auf dem kann ich aufbauen und weiss jetzt auch wo anpacken.

vielen dank für die hilfe

QUOTE Grüsse ins "thal"

wie kommst du darauf? kennen wir uns?
blink.gif
 
Zurück
Oben