Hi Pedro,
es kommt darauf an, was Dir wichtig ist. Wenn Du ein Layout möchtest, das eine Navigation immer im Blick des Surfers hält, dann sind Frames das Richtige. Alle anderen Lösungen, die dieses Ziel ins Visier nehmen, etwa mit CSS oder Javascript haben gravierende Probleme und funktionieren nur in einigen aktuellen Browsern oder sind Javascript-abhängig.
Den Haken des Frames-Ansatzes kannst Du hier im Forum jeden Tag verfolgen: Zunächst schaut alles ganz einfach aus, dann aber wird deutlich, dass Frames doch nicht so ganz einfach zu verwalten sind. Typische Probleme:
- Wie gehe ich damit um, dass Suchmaschinen meine Unterseiten verlinken und dass diese ohne mein Frameset geladen werden. Ein guter Lösungsansatz:
http://www.selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm - Wie greife ich auf die verschiedenen Framefenster zu, etwa durch Javascript oder Links? Ein toller Artikel hierzu:
http://www.selfaktuell.teamone.de/tippstricks/javascript/fensterzugriff/index.htm - Wie kann ich, etwa durch Subdomains, Unterseiten meines Framesets zum Bookmarken anbieten? Vielleicht schreibt mal jetzt passend zum Abgesang des Framekonzepts jemand einen Artikel dazu.... *g*
Wenn Du ein gelungenes Tabellenlayout sehen willst, dann schau Dir mal SelfHTML an *g* Auch heute noch kann man trotz aller Faszination für Positionierungsalternativen mit CSS auch mit Tabellen ein funktionierendes und attraktives Layout bauen.
CSS solltest Du in jedem Fall einsetzen, egal welchen Lösungsansatz Du verfolgst. Zunächst mal solltest Du alle Formatierungen, soweit es eben geht, in eine zentrale CSS-Datei auslagern. Wirklich jede Zeichen- und Absatzformatierung im Text solltest Du vermeiden und auslagern, wenn es geht auch andere Abstände, Pseudoformate usw. Nicht bleibt im Netz so wie es war, auch kleinere Projekte wachsen und dann erhöht eine zentrale Formatdatei die Wartbarkeit immens.
Die große Faszination für CSS-Positionierungen hier im Forum teile ich nur zum Teil. Es gibt so viele tolle Möglichkeiten in den CSS2- Spezifikationen, es wäre wirklich eine Erleichterung, wenn man auf dieser Basis Websites entwickeln könnte. Der Pferdefuß: Die Browser unterhalb der 6er-Generation reagieren zum Teil überraschend auf CSS-Anweisungen der neueren Generation, und selbst in den neusten Erzeugnissen von Opera, Mozilla und Microsoft sehen die Seiten eben nicht gleich aus. Es gibt tolle Workarounds für fast alle Probleme, aber diese ausgefuchsten Lösungen machen den größten Vorteil, die Flexibilität und Klarheit des Lösungsansatzes zum Teil wieder zunichte. Aber das ist nur meine Meinung, viele hier denken anders darüber, und einige wissen auch wirklich, wie man den Löffel halten muss....
Mein Tipp: Überleg erstmal, wie Deine Site in etwa aufgebaut sein sollte, und welche Inhalte Du präsentieren willst. Gibt es viele Grafiken oder geht es eher um Text? Schwebt Dir eine möglichst genaue Positionierung der Elemente vor, oder kann das Ganze luftig und flexibel bleiben? Gibt es feste Elemente auf Deinen Seiten, die der Betrachter immer im Blick haben sollte, oder ist das nicht erforderlich? Wie umfangreich wird Dein Projekt in etwa werden? Wie oft ändern sich die Inhalte?
Einen Ansatz mit Frames solltest Du wirklich nur ins Auge fassen, wenn es Dir wichtig ist, bestimmte Elemnte wie etwa eine Navigation immer im Stil eines Anwendungsfensters im Blickfeld des Betrachters zu halten.
Je stärker Du daran gebunden bist, ein bestimmtes Grafiklayout nachzubauen, desto eher würde ich zu Tabellen raten, es kann aber sein, dass die CSS-Gurus mich da widerlegen können.
Vor allem bei umfangreichen Sites, bei denen sich viel ändert, solltest Du Zeit investieren, Seitentypen zu entwickeln, die Du immer wieder einsetzen kannst, es gibt dafür schöne Beispiele im Netz. Wichtig ist dabei vor allem, möglichst viele Elemente wie Formate, Grafikbeispiele, und Layouts zu standardisieren und in einer übersichtlichen Verzeichnisstruktur abzulegen und zu verwalten.
Nützlich ist es manchmal auch, wenn man zumindest einen Teil der Elemente serverseitig dynamisch einfügen kann, aber das ist dann auch schon die hohe Schule ;-)
Viele Grüße
Mathias Bigge