Der Martin: Tabelle im iframe: Tabellenbreite und iFramehoehe

Beitrag lesen

Hallo Nicola,

http://www.shopanbieter.de/hitliste.php
Der iframe enthaelt keine ganze Seite, sondern nur einen einzelnen Textabsatz sowie eine Tabelle.

das ist schon mal *ein* Problem. Denn ein iframe ist ein eigenständiges Dokument und muss als solches ein *vollständiges* HTML-Grundgerüst mit DOCTYPE, head und body enthalten.

Die meisten Formatierungsprobleme habe ich mittels einem eigenen Stylesheet geloest, das ich im iFrame-'Text' einbinde, denn ich habe es nicht geschafft, dass die iFrame-Inhalte auf ein Stylesheet hoeren, das in die Host-Seite eingebunden ist.

Natürlich. Das sind getrennte Dokumente, die nichts voneinander "wissen".

Nun lege ich im Stylesheet der Hostseite nur die iFrame-Styles fest:
.hitliste {
padding: 0px 10px 0px 10px;
font-size: 12px;
width: 550px;
height: 1400px;
border: 2px solid red;
overflow: visible;
}

Die Angabe zu font-size wird nicht berücksichtigt, weil das iframe-Element keinen Textinhalt hat. Das ist etwas abstrakt und vielleicht schwer zu durchschauen - aber der Inhalt des des iframe-Elements ist, wie schon angedeutet, ein komplettes Dokument, das wieder sein eigenes Stylesheet mitbringt. Nur die Angaben, die die Einbettung des iframes als Block ins Hauptdokument betreffen, sind hier wirksam.

Die restlichen Styles liegen im Stylesheet des iFrames.

Das ist korrekt - abgesehen davon, dass dein iframe-Dokument kein korrektes HTML-Dokument ist.

Nun die uebrig gebliebenen Probleme/Fragen an Euch:

  1. ich weiss nicht warum, aber die Tabelle im iFrame ist nicht breiter zu bekommen, als sie ist. Weder mit absoluten Breiten, noch mit width: 100%; Wie zwinge ich sie in die volle Breite?

Das Problem dürfte sein, dass das Dokument im iframe kein body-Element hat, an dem sich der Inhalt orientieren könnte.

  1. ich haette gern, dass der iFrame in seiner Hoehe mit dem Inhalt anwaechst.

Das geht nicht - es widerspricht dem Grundkonzept von HTML, dass sich der Inhalt eines Dokuments an die äußeren Gegebenheiten (Fenstergröße) anpasst und nicht umgekehrt. Du hast hier *wieder* das Problem, dass der iframe-Inhalt und das Hauptdokument nichts voneinander wissen. Das body-Element im iframe (das der Browser wohl implizit ergänzt), passt sich wohl seinem Inhalt an und kann dadurch größer werden als der Platz, den das Hauptdokument dem iframe zur Verfügung steht. Dann tauchen im iframe zusätzliche Scrollbalken auf. Aber das Hauptdokument kann die Größe des iframe nicht an dessen Inhalt anpassen.

Da die Liste ja aber je nach Browserdarstellung oder Listeninhalt laenger oder kuerzer ausfallen kann, ist die Einstellung einer festen iFramehoehe nicht sehr elegant. Gibt es hier eine Loesung?

Mir fällt keine ein, außer auf das iframe-Konzept zu verzichten. Dir steht doch offensichtlich PHP zur Verfügung. Warum fügst du die Inhalte nicht gleich serverseitig ein? Dann hättest du aus der Sicht des Browsers nur ein einziges Dokument, in dem sich alle Elemente aufeinander abstimmen können.

Schönen Abend noch,
 Martin

--
Der Stress von heute ist die gute alte Zeit von morgen.