Ich habe ein Problem beim Layouten mit den verschiedenen Browsern
zum Aufbau. Oben befindet sich ein Div mit 100% breite und einer fixen höhe für das Banner
darunter
links ein Frame mit 100% höhe und fixer breite für das Menü
in der mitte ein Frame mit relativer Breite und 100% Höhe für den Inhalt
und Rechts ein mit dem Linken div identischer div für diverse andere Sachen
Ergebnis in Beiden Browsern sieht erstmal super aus. Aber! Die 100% höhe der unter dem Banner angeorneten Divs beziehen sich auf die Gesamte Fensterhöhe ohne Banner. Es entsteht also ein scrollbalken.
Kann man irgendwie etwas machen wie hight = 100% - 200px?
Nun zum größeren Problem:
Wird das Mittlere Frame mit Inhalt gefüllt, der länger ist als die 100% Fensterhöhe hergeben schreibt der FF den hinhalt über den DIV hinaus einfach weiter. (Sieht man am Hintergrund) Der IE dehnt nur den Mittleren Frame aus. Links und rechts behalten ihre länge. Dies habe ich im IE behoben, indem ich ein Main Div mit 100% höhe erstellt habe, in dem sich die anderen DIVs befinden erstellt habe. Dies führt aber beim FF auch nicht zum Erfolg, das er die DIVs nicht mit dem Inhalt ausdehnt.
Was kann ich da nun machen? Danke für eure Antworten
bei den 100% höhe -200px kann ich dir nicht helfen.
das zweite problem geht relativ einfach zu lösen.
der IE(7) reagiert prima auf height:100%; und erweitert dann auch das element nach unten.
der FF aber nicht.
für den musst du unterheight:100%; noch zusätzlich min-height:100%; angeben.
der IE(7) ignoriert diese angabe, da er sie nicht kennt.
der FF (und ich glaube auch IE8 ) wird sie aber als letzte anweisung akzeptieren und so umsetzen wie du es haben möchtest.
Das min-height wird bei mir von beiden Browsern ignoriert. Ich abe herrausgefunden, dass ich wenn ich nen Doctype verwede:
[LEFT][SIZE=2][SIZE=2]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"[/SIZE][/LEFT]
[SIZE=2]"http://www.w3.org/TR/html4/frameset.dtd">[/SIZE]
[SIZE=2][/SIZE]
[SIZE=2]Das verhalten vom IE und FF erfreulicherweise zumindest schonmal gleich sind. Allerdings ist es hier so, dass das height Atribut der Inhaltes ignoriert wird. Habe ich also keinen Inhalt sehe ich den Frame auch nicht. Selbst wenn ich min-height angebe. Dafür aber pass mit diesem Doctype auch der FF die DIV höhe an den Inhalt an. Allerdings wie gesagt immer auch wenn der Inhalt kürzer ist als height oder min-height[/SIZE]
[/SIZE]
Es gibt viele viele Seiten im Internet, die erklären, wie sich so ziemlich jede Variation eines Spaltenlayouts mit CSS umsetzen lässt. Da solltest du mal reinschauen, denn deine Technik scheint im Ansatz fehlerhaft oder zumindest ungünstig zu sein. Eine geeignete Suche: „css spalten layout“.
Du erwartest hier die Lösung eines Problems, zu dem im Internet hundertfach Beispiele gefunden werden können, und du postest noch nicht einmal Code. Wie soll dir da jemand helfen?
Ich abe herrausgefunden, dass ich wenn ich nen Doctype verwede:
jeder Browser kann nur auf height:100% reagieren, wenn seine Vorfahren eine definierte Größe haben.
Bei Prozent muss das sogar hinauf bis zum Initial Containing Block (html) gehen, sonst fällt height auf auto zurück.
Prozent heißt ja immer Prozent von was.
Wie kommste denn darauf?
Der IE6 kennt kein min-height der IE7 sehr wohl.
Ich habe mitlerweile schon 1000 Sachen ausprobiert bin noch nicht ganz am Ziel:
Es soll so sein:
top Frame: von Links nach rechts 100% Breite
Menü Frame: links unter Topframe fix Breite aber von der höhe bis zum ende des Dokumentes
Inhalt Frame: Fixer Rand links und rechts, unterhalbt top Frame, variable Breite höhe angepasst an Inhalt (Hat einfluss auf das Dokument Ende)
Rechter Frame: Genau wie Menü nur eben an der rechten Seite.
Es funktioniert nun alles super bis auf dass der Menüframe und der Rechte Frame sich nicht über das ganze Dokument erstrecken.
Ah danke. das mit der Validation ist ja echt genial. Ich versteh zwar atm nur schwer was gemeint ist mit manchen Sachen aber ich wurschtel mich mal da durch
OK ich hab mal alles auf das Layout beschränkt und so angepasst das es keine Fehler mehr gibt. Wie zu sehen ist, gibt es immernoch das Problem, dass die Höhen des linken und rechten
nur 100% der Fensterhöhe haben und nicht 100% des Dokumentes. Das Mittlere Frame hat als hight: auto; und min-height: 100%;
Wie bekomme ich das jetzt hin, dass links und rechts genau so bis unten an das Dokument gehen wie das Mittlere.[SIZE=2][SIZE=2]
[/SIZE][/SIZE]
Heute Nach kam mir die Idee. Das linke, mittlere und rechte div sind in einem Übergeordneten Div. das linke und rechte div erhalten somit mit top: 0px und bottom 0px; die höhe des übergeordneten div. Das übergehordnete und mittlere Div hat height: auto;. Dadurch passt sich ihre höhe an de Texthinhalt an. Damit linkes und rechtes Div nicht zu weit zusammen geschoben werden haben sie min-height: 100%.
Das geht soweit wunderbar solange auch genügend inhalt im mittleren div ist. Sobalt der inhalt zu kurz wird schieb es sich zusammen. Da position auf relative stehen muss lässt sich auch keine höhe festlegen. Nun haben ich ein weiteres Div erstellt an der gleichen Stelle wie das mittlere allerdings mit Absoluter Position von bottom: 0px bis top: 0px; und einem nidrigerem Z-Index.
Nun sieht es so aus als würde das mittlere Div immer bis unten hin gehen. Ist der Inhalt größer als eine Fensterhöhe dehnt sich alle Automatisch aus