ritschmanhard: Animation

Beitrag lesen

Hi Chris!

Vielleicht wäre es gut, vorab ein paar Begriffe zu klären:
**********************************************************

  1. Fenster: Wird ein neues Fenster geöffnet, so wird auf dem Client-Rechner eine neue Browserinstanz gestartet - also wie wenn man den Browser ein weiteres mal öffnen würde...

  2. Seite: Der Inhalt eines Fensters (es sei denn es werden (I)Frames verwendet, dann kann pro definiertem extra (I)Frame eine weitere Seite im Fenster dargestellt werden.

  3. Ebenen: Diese werden nach meinem Verständnis über den z-index (CSS) festgelegt; eine Seite kann beliebig viele Ebenen haben; background stellt eine Sonderebene dar, für die CSS spezielle Eigenschaften kennt.

  4. (I)Frame: Ermöglicht es, mehr als eine Seite in einem Fenster darzustellen.

Nun gibt es verschiedene Konzepte, wie man eine Navigation realisieren kann:
****************************************************************************
-----------------
|Nav1| ContentX |
|Nav2| ContentX |
|Nav3| ContentX |
-----------------
NavX seien die Menü/Navigationslinks
ContentX sei der Inhalt, der nach Linkclick erscheine

  1. Jede Seite beinhaltet die (komplette) Navigation und zusätzlich den jeweiligen Content - dies läßt sich schon über Serverside Includes realisieren (include navigation in every page).

  2. Iframe Technologie: Wichtig ist hierbei, entgegen dem "logischen" Ansatz die Navigation in den Iframe zu stellen und in jeder Seite den Navigationsiframe einzutragen. Die Navigation ändert über den NavX link die parent Adresse.

  3. Serverseitige Lösungen, welche die kompletten Seiten als Ergebnis eines jeweils parametrisierten CGI Aufrufs liefern (kleiner Nachteil scheint hier die schlechtere Bewertung durch Suchmaschinen zu sein)

Ab jetzt folgen "schlechtere" Lösungen:
***************************************
3) Mittels javascript kann man je nach link die Seite dynamisch befüllen (oder javascript für die Navigation erforderlich machen, beispielsweise indem man anstelle von Links fälschlicherweise Buttons verwendet), die Seite wird also nie verlassen (nur eine html Adresse). Hier folgen zwei Nachteile:
 - bei deaktiviertem JS ist die Navigation nicht funktional
 - (dynamische Befüllung:) es ist nicht möglich, die "verschiedenen Seiten" von außen direkt zu erreichen.

  1. Es ist möglich, mittels CSS je nach Link verschiedene Ebenen der Seite einzublenden.
    Nachteil:
     - Grauenvoll zu maintainen, da mehrere Views in einer Seite definiert werden

  2. Frames verwenden oder den Content in den Iframe stellen:
    Nachteile:
     - Bookmarking einer bestimmten Contentseite nicht möglich
     - Suchmaschinenindizierung ist problematisch
     - Direkte Seitenwahl von außen nicht möglich

  3. Navigation in einem anderen Fenster als Content (Navigation als Remote control). Nachteile:
     - Probleme mit Popup blockern und "öffnen als neuer Reiter" möglich
     - Versehentliches Schliessen des Navigationsfensters verhindert weitere Navigation

Grundsätzlich solltest du folgendes immer im Auge behalten:
***********************************************************
0) Eine gute Seite validiert

  1. Eine gute Seite "funktioniert" ( = macht ihre Infos verfügbar) ohne aktiviertes JS, ohne CSS und idealerweise ist jede Seite als Direktlink erreichbar. Insbesondere Flash dient nur der "Seitenverschönerung".

  2. Eine gute Seite verwendet HTML als Auszeichnungssprache und somit eine Liste um Listen darzustellen (ul/li, z.B. Navigation), eine Tabelle (table) für Tabellarische Informationen (und nicht für das Layout!) usw., CSS wird für die Formatierung verwendet!

  3. Mit CSS hat die Seite idealerweise ein fließendes Layout, paßt das Seitenlayout also an verschiedene Viewportgrößen an und ist nicht auf eine bestimmte Größe (noch schlimmer: Auflösung) festgelegt.

  4. Wenn man noch weiter gehen will, ermöglicht xml/xsl dann auch noch die Trennung von Daten und deren Auszeichnung - ich persönlich finde xml genial...

Nun hab ich mir nen halben Wolf geschrieben, aber ich hoffe ich konnte dir damit helfen ;-).

Grüsse,
Richard