WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Kleines html-Chaos? (http://www.wcm.at/forum/showthread.php?t=132927)

Satan_666 30.04.2004 18:09

Kleines html-Chaos?
 
Liebe Forenten!

Gefordert sind dieses Mal die HTML-Experten - siehe nachfolgende Problembeschreibung:


Meine Seiten gliedern sich in 4 horizontale Bereiche:

1. Seitenkopf
2. Navigationsleiste
3. Content (Inhalt)
4. Fußzeile


Meine Lösung sieht folgendermaßen aus:


<table border="0" width="100%" height="100%">
<tr height="90">
<td>

</td>
</tr>
<tr height="25">
<td>

</td>
</tr>
<tr>
<td>
<!-- hier ist der Seiteninhalt; da die Menge des Inhaltes unterschiedlich ist,
wurde hier auf den Parameter height in <tr> verzichtet. -->
</td>
</tr>
<tr height="25">
<td>

</td>
</tr>
</table>




An sich funktioniert dies sehr gut. Die Fußzeile befindet sich entweder genau am Ende der Seite (egal, wie groß das Fensterl ist) - oder darunter, falls der Seiteninhalt ein Scrollen der Seite notwendig macht. Ganz in meinem Sinne.


ABER: beim Opera 6.01 funktioniert's nicht. Dort wird scheinbar der height-Parameter total ignoriert. Zumindest sieht die Seite exakt gleich aus, auch wenn ich die height-Parameter nicht verwende. Gleiches Ergebnis gibt es übrigens auch, wenn ich die Höhe der Zeilen mittels CSS definiere (style="height:90px").


Bin dankbar für jeden Lösungsansatz, der an Frames vorbei geht - many thanks!!

hr_ralph 30.04.2004 18:37

Soweit ich weiß ist das height Attribut für den <tr>-Tag nicht in der Spezifikation (4.01). Es gibt aber die Möglichkeit den <td>-Tag eine height-Attribut zu hängen.

hr_ralph

Satan_666 30.04.2004 21:08

hi, hr_ralph!

das stimmt zwar, was du schreibst - nur hilft es leider nicht. wie geschrieben: das problem betrifft nur den (doofen?) opera!


:ms:

_m3 01.05.2004 07:47

Werter Satan_666, ein Layout mit Tabellen zu machen ist doch sehr 90er Retro. Warum nicht mit CSS?

Schoenes Beispiel:
http://www.csszengarden.com/

P.S.: das height-Attribut ist bereits in HTML 4.01 deprecated, sollte also nicht mehr verwendet werden. Ich denke mal, dass sich Opera da sehr genau an den Standard haelt.

Satan_666 01.05.2004 10:35

@_m3
 
hi, _m3!

Beleidigt? Ich meine, weil Du mich gar so förmlich anredest.... *lol*


Also: Wer lesen kann, ist klar im Vorteil! In meiner Anfrage steht doch klar geschrieben, dass ich dieses Verfahren auch mit

style="height:90px"

probiert habe; mit dem selben Erfolg! Somit KANN es meiner meinung nach gar nicht daran liegen, dass sich die anderen Browser nicht an die Norm halten.


Desweiteren habe ich nicht verstanden, was Du mir mit dem Link sagen willst....

Hannes0815 01.05.2004 11:33

Betrachte mal den Quellcode des Links ;)

Satan_666 01.05.2004 14:06

Irgendwie habe ich das Gefühl, dass ich mein Problem noch nicht verständlich artikulieren konnte. Daher mal einen anderen Ansatz:

Meine Vorgabe ist, die Fußzeile möglichst am Ende des Darstellungsbereiches anzuzeigen. Nehmen wir folgende Beispiele an:


1. Darstellungsbereich ist 550 Pixel hoch
In diesem Falle müsste der Contentbereich mit "min-height:410px" definiert werden: 550 - 90 (Logo) - 25 (Navigation) - 25 (Fußzeile) = 410

2. Darstellungsbereich ist 432 Pixel hoch
In diesem Falle müsste der Contentbereich mit "min-height:292px" definiert werden: 432 - 90 - 25 - 25 = 292

Damit sollte mein Problem klar sein: ich weiß nicht und kann es nicht wissen, wie groß der Darstellungsbereich im Browser ist, wenn die Seite angezeigt wird. Somit folgt, dass ich hier keinen fixen Wert in der Höhe definieren kann. Ganz abgesehen davon, dass bei einer fixen Höhenangabe auch keine automatische Anpassung vorgenommen wird, wenn sich die Fenstergröße ändert.


Meine Lösung ist deswegen "elegant", weil ich jene Rows, die eine fixe Höhe haben, entsprechend deklarieren kann und die restliche Row ohne Höhenangabe. Hat die Tabelle eine Höhe von 100%, dann funktioniert es (bei IE und Mozilla). Und zwar auch dann, wenn sich die Fenstergröße ändern sollte, weil der Browser intern die Größe des Contentbereiches neu errechnet, wenn sich die Fenstergröße ändert.

Ich fürchte, dass mir der Tag <div> kaum weiterhelfen kann, zumal ich hier ja auch nicht sagen kann, dass die Höhe abgängig von der Fenstergröße ist.


Möglich, dass das ganze mit JavaScript lösbar ist. Leider bin ich in JavaScript zu wenig firm.....

pong 01.05.2004 14:38

http://alistapart.com/articles/footers/

pong

_m3 01.05.2004 20:39

Re: @_m3
 
Zitat:

Original geschrieben von Satan_666

Also: Wer lesen kann, ist klar im Vorteil!

Ja, das sehe ich auch so. :ms:

Zitat:

In meiner Anfrage steht doch klar geschrieben, dass ich dieses Verfahren auch mit

style="height:90px"

probiert habe; mit dem selben Erfolg! Somit KANN es meiner meinung nach gar nicht daran liegen, dass sich die anderen Browser nicht an die Norm halten.


Desweiteren habe ich nicht verstanden, was Du mir mit dem Link sagen willst....

Was ich meinte ist, dass Du komplett auf Tabellen verzichten willst, und NUR mit CSS arbeiten solltest (div, span, ...).

Jaguar 01.05.2004 21:48

Re: Re: @_m3
 
Zitat:

Original geschrieben von _m3
Ja, das sehe ich auch so. :ms:

Was ich meinte ist, dass Du komplett auf Tabellen verzichten willst, und NUR mit CSS arbeiten solltest (div, span, ...).

Dem kann ich nur dringlichst Zustimmen! Tabellen waren mitte der 90er in. Layout = CSS, alles andere macht keinen Sinn.

Beim Link von Pong hast ein wunderschönes Beispiel. Das brauchst eigentlich eh nur mehr bei dir einfügen und fertig.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag