Bernd S.: Browserspezifisches Design oder lieber Eines für alle?

Guten Tag.

Ich habe in bei mir zu Hause eine Homepage gebastelt, die mit dem IE auch (für mich) ganz passabel ausschaut. Nun habe ich bei einem Bekannten die Seite mit Netscape aufgerufen und war empört.

Netscape verschluckt sämtliche CSS Angaben, stellt Tabellem nicht korrekt dar... das ganze Layout ist im Eimer.

hier nun meine Fragen:

Sollte man eine Seite so programmieren, dass sie auf jedem Browser läuft, und somit Kompromisse eingehen, dass manche Benutzer eben nicht den vollen Umfang ihres Browsers ausreizen? (z.B. Transparenz-Effekte oder andere CSS-Elemente...)
Oder ist es vielleicht angenehmer mehrere Versionen einer Seite zu haben (eine für IE, eine für Netscape...) und diese dann mit PHP - je nach verwendetem Browser - gestalten zu lassen?

Ich bitte um Anregungen und/oder Vorschläge.

Danke schon jetzt

MfG
Bernd

P.S.: verzögert der Einsatz von PHP den Seitenaufbau merklich (die Seite wird ja erst 'vorbereitet' und dann gesendet), oder gibt es auch per JavaScript die möglichkeit dynamisch HTML Inhalte in Seiten einzufügen (also so etwas wie eine art include() mit JS) ?

  1. hi

    Netscape verschluckt sämtliche CSS Angaben, stellt Tabellem nicht korrekt dar... das ganze Layout ist im Eimer.

    wohl Netscape 4...

    Sollte man eine Seite so programmieren, dass sie auf jedem Browser läuft, und somit Kompromisse eingehen, dass manche Benutzer eben nicht den vollen Umfang ihres Browsers ausreizen? (z.B. Transparenz-Effekte oder andere CSS-Elemente...)

    JA. Wobei bei gültigen Befehlen in HTML, CSS und JS eigentlich nur Netscape _4_ mal Probleme macht. Der Rest (Opera, IE, konqueror, Mozilla) ist recht genügsam. Das meiste ist eben nicht weil der IE so toll ist, sondern weil der IE so krankhaft fehlertollerant ist. Vermutlich fällt das Layout schon mit einer anderen IE-Version auseinander.

    Über PHP mehrere Versionen zu zimmern ist insofern nicht die beste Lösung, da die nur den Browserstring abfragt und der immer häufiger gefälscht wird.

    1. Hallo

      wohl Netscape 4...

      Ja, Netscape 4.7

      Sollte man eine Seite so programmieren, dass sie auf jedem Browser läuft, und somit Kompromisse eingehen, dass manche Benutzer eben nicht den vollen Umfang ihres Browsers ausreizen? (z.B. Transparenz-Effekte oder andere CSS-Elemente...)

      JA. Wobei bei gültigen Befehlen in HTML, CSS und JS eigentlich nur Netscape _4_ mal Probleme macht. Der Rest (Opera, IE, konqueror, Mozilla) ist recht genügsam. Das meiste ist eben nicht weil der IE so toll ist, sondern weil der IE so krankhaft fehlertollerant ist. Vermutlich fällt das Layout schon mit einer anderen IE-Version auseinander.

      Nein. Ich habe es mit IE5 und IE6 getestet, das Ergebnis war bis auf kleine Unterschiede recht gleich.

      Über PHP mehrere Versionen zu zimmern ist insofern nicht die beste Lösung, da die nur den Browserstring abfragt und der immer häufiger gefälscht wird.

      Also doch lieber auf manche Effekte verzichten und dafür 'kompatibel' sein?

      1. hi

        Also doch lieber auf manche Effekte verzichten und dafür 'kompatibel' sein?

        ja. Wobei man auf vieles nicht wirklich verzichten muss, nur darauf achten, dass es nicht nach hinten losgeht in Netscape 4. Wer sich mühe gibt, wird alle 5 hier bereits genannten Browser unterstützen können, ohne das das Layout irgendwo Amok läuft.

        gruss Kai

  2. Hi,

    Ich habe in bei mir zu Hause eine Homepage gebastelt, die mit dem IE auch (für mich) ganz passabel ausschaut. Nun habe ich bei einem Bekannten die Seite mit Netscape aufgerufen und war empört.

    Du hast den Fehler begangen, die Seiten primär mit einem Browser zu testen, der eh alles so darstellt, wie Du es willst - egal ob es nun richtig ist oder kompletter Unsinn. Natürlich ist das Ergebnis dann schlecht in Browsern, die erfahrungsgemäß selbst vieles richtiges nicht darstellen, geschweige denn das komplett falsche.

    Netscape verschluckt sämtliche CSS Angaben, stellt Tabellem nicht korrekt dar... das ganze Layout ist im Eimer.

    Das lässt auf grobe Fehler deinerseits schließen. Wenn _sämtliche_ CSS-Angaben verloren gehen, hast Du nicht nur die mangelnden Fähigkeiten von Netscape 4 "erwischt".

    Sollte man eine Seite so programmieren,

    Man sollte eine Seite nicht programmieren, wenn es nicht nötig ist. Gewöhnlich reicht es, mit HTML und CSS zu arbeiten.

    dass sie auf jedem Browser läuft,

    Da dies prinzipiell mit höchstens geringem Mehraufwand möglich ist, möchte ich es voll und ganz empfehlen. Eine Browserweiche o.ä. macht keinen Sinn, da sie von unkontrollierbaren Umständen (JavaScript, korrekte Browserkennung, Aufruf nicht durch Suchmaschine...) abhängig ist - zudem ist es ein vielfacher Aufwand, den Du für jede einzelne Browserfamilie zu tätigen hast.

    und somit Kompromisse eingehen, dass manche Benutzer eben nicht den vollen Umfang ihres Browsers ausreizen? (z.B. Transparenz-Effekte

    Oh Mann, da hast Du ja ein schönes Beispiel gegeben :-) Wenn Du soweit bist, dass Du solche Dinge für relevant bist, hast Du Dich vom Sinn des Internet getrennt. Erlerne Flash.

    Oder ist es vielleicht angenehmer mehrere Versionen einer Seite zu haben (eine für IE, eine für Netscape...) und diese dann mit PHP - je nach verwendetem Browser - gestalten zu lassen?

    Wie gesagt: das ist ein vielfacher Aufwand. PHP kann den Browser nicht erkennen, sondern kann nur das sehen, was der Browser oder ein Proxy zu sein behaupten. Damit fällst Du in der Praxis auf die Schn**ze.

    Ich bitte um Anregungen und/oder Vorschläge.

    Praxis-Tipp: Entwickle primär mit Netscape 4. Du wirst mit steigender Erfahrung (und den Erkenntnissen, was die einzelnen Browser können und was nicht) immer seltener andere Browser zum Testen verwenden.

    P.S.: verzögert der Einsatz von PHP den Seitenaufbau merklich (die Seite wird ja erst 'vorbereitet' und dann gesendet),

    Es wird serverintern ein "kleiner Roundtrip" gestartet, und die Programmlogik muss erst aktiv werden. Zudem wird ein Caching erschwert, welches bei statischen Dateien mindestens das Betriebssystem vornimmt. Natürlich ist es langsamer, natürlich steigt die Rechnerlast. Ob es bei "einfachen Dingen" sprübar ist, wage ich zu bezweifeln; aber: die Menge macht's.

    oder gibt es auch per JavaScript die möglichkeit dynamisch HTML Inhalte in Seiten einzufügen (also so etwas wie eine art include() mit JS) ?

    Im Prinzip ja. Damit fällst Du aber noch mehr auf die Schn**ze, weil Du Dich von JavaScript abhängig machst, welches keinesfalls vorauszusetzen ist.

    Was Du brauchst, ist Erfahrung. Teste mit mehr Browsern. Gewöhne Dich an die, die _nicht_ jeden Quatsch dank 40 MB Fehlerkorrekturroutinen so darstellen, wie es sich der Entwickler wohl gedacht haben wird.

    Cheatah

    1. Hi,
      Du hast den Fehler begangen, die Seiten primär mit einem Browser zu testen, der eh alles so darstellt, wie Du es willst - egal ob es nun richtig ist oder kompletter Unsinn. Natürlich ist das Ergebnis dann schlecht in Browsern, die erfahrungsgemäß selbst vieles richtiges nicht darstellen, geschweige denn das komplett falsche.

      Das ist mir mittlerweile auch klar geworden.

      Netscape verschluckt sämtliche CSS Angaben, stellt Tabellem nicht korrekt dar... das ganze Layout ist im Eimer.

      Das lässt auf grobe Fehler deinerseits schließen. Wenn _sämtliche_ CSS-Angaben verloren gehen, hast Du nicht nur die mangelnden Fähigkeiten von Netscape 4 "erwischt".

      Aber was bitte ist an einem
      <textarea name="message" cols="80" rows="15" style="background-color:#0000ff; "></textarea>
      so falsch?
      kann Netscape 4 diesen hintergrund nicht ändern? (Ich dachte bei NC4 wäre CSS mit JSSS implementiert, und ich hatte JS angeschaltet...)

      Sollte man eine Seite so programmieren,

      Man sollte eine Seite nicht programmieren, wenn es nicht nötig ist. Gewöhnlich reicht es, mit HTML und CSS zu arbeiten.

      Ich 'schreibe' so viel C-Code, da ist der Weg zum 'programmieren' einer HTML-Seite nicht der weiteste.

      dass sie auf jedem Browser läuft,

      Da dies prinzipiell mit höchstens geringem Mehraufwand möglich ist, möchte ich es voll und ganz empfehlen. Eine Browserweiche o.ä. macht keinen Sinn, da sie von unkontrollierbaren Umständen (JavaScript, korrekte Browserkennung, Aufruf nicht durch Suchmaschine...) abhängig ist - zudem ist es ein vielfacher Aufwand, den Du für jede einzelne Browserfamilie zu tätigen hast.

      Und wie tue ich das am besten um auch damit kompatibel zu bleiben? Die Seite müsste dann ja doch testen was für ein Browser benutzt wird da ja manche eben verschiedene Wege zum selben Ziel benutzen.

      und somit Kompromisse eingehen, dass manche Benutzer eben nicht den vollen Umfang ihres Browsers ausreizen? (z.B. Transparenz-Effekte

      Oh Mann, da hast Du ja ein schönes Beispiel gegeben :-) Wenn Du soweit bist, dass Du solche Dinge für relevant bist, hast Du Dich vom Sinn des Internet getrennt. Erlerne Flash.

      Warum werden dann bitte derartige 'Featuers' in einen browser eingebaut? Oder besser: warum sieht man es in CSS dann überhaupt vor? Nur um sie nicht zu nutzen, oder damit MicroSoft sagen kann: "Da guck mal bei mir sieht die Seite soo toll aus, und mit Netscpae soo erbärmlich!" ?

      Oder ist es vielleicht angenehmer mehrere Versionen einer Seite zu haben (eine für IE, eine für Netscape...) und diese dann mit PHP - je nach verwendetem Browser - gestalten zu lassen?

      Wie gesagt: das ist ein vielfacher Aufwand. PHP kann den Browser nicht erkennen, sondern kann nur das sehen, was der Browser oder ein Proxy zu sein behaupten. Damit fällst Du in der Praxis auf die Schn**ze.

      s.o.

      Ich bitte um Anregungen und/oder Vorschläge.

      Praxis-Tipp: Entwickle primär mit Netscape 4. Du wirst mit steigender Erfahrung (und den Erkenntnissen, was die einzelnen Browser können und was nicht) immer seltener andere Browser zum Testen verwenden.

      Danke, ich werde den Tip berücksichtigen.

      oder gibt es auch per JavaScript die möglichkeit dynamisch HTML Inhalte in Seiten einzufügen (also so etwas wie eine art include() mit JS) ?

      Im Prinzip ja. Damit fällst Du aber noch mehr auf die Schn**ze, weil Du Dich von JavaScript abhängig machst, welches keinesfalls vorauszusetzen ist.

      Wenn man davon ausgeht, dass man nicht voraussetzen kann, sollte man gleich wieder für einen DOS-Browser im Text-Modus Seiten schreiben...

      Bernd

      1. hi

        Aber was bitte ist an einem
        <textarea name="message" cols="80" rows="15" style="background-color:#0000ff; "></textarea>
        so falsch?
        kann Netscape 4 diesen hintergrund nicht ändern? (Ich dachte bei NC4 wäre CSS mit JSSS implementiert, und ich hatte JS angeschaltet...)

        daran gar nix, aber wen stört's, wenn die <textarea> eben nicht blau ist? PECH, sonst nix.

        Und wie tue ich das am besten um auch damit kompatibel zu bleiben? Die Seite müsste dann ja doch testen was für ein Browser benutzt wird da ja manche eben verschiedene Wege zum selben Ziel benutzen.

        Lern, wie CSS wirklich gedacht ist.

        Warum werden dann bitte derartige 'Featuers' in einen browser eingebaut? Oder besser: warum sieht man es in CSS dann überhaupt vor? Nur um sie nicht zu nutzen, oder damit MicroSoft sagen kann: "Da guck mal bei mir sieht die Seite soo toll aus, und mit Netscpae soo erbärmlich!" ?

        Es geht darum, dass man auf soetwas nicht bestehen darf. Bei einen Browser isses transparent, beim anderen eben nicht. Übrigens ist die Transparenz auch noch gar kein offizielles CSS!

        Wenn man davon ausgeht, dass man nicht voraussetzen kann, sollte man gleich wieder für einen DOS-Browser im Text-Modus Seiten schreiben...

        nö.

        So mach ich's (ist aber auch nicht immer der Hit in Netscape 4):
        1. Seite wird in Mozilla entwickelt
        2. jede CSS-Regel, die Netscape 4 nicht kennt oder dort zum Chaos führt wird in @media all{} eingeschlossen (dann läßt der seine Finger davon).
        Dabei sind besonders kritisch:
        -> CSS-Angaben zu <img/>
        -> jede display: Angabe außer "none" und der jeweils für das Element gedachte (block bzw. inline)
        -> Mozilla's eigene Erweiterungen (da verschluckt sich Netscape 4 wohl an dem "-" vorne)

        In HTML muss man nur eine Alternative zu den NN4 unbekannten Tags schaffen und mit <object> extrem vorsichtig sein (was sonst bassiert -> siehe meine URL)

        gruss Kai

      2. Hi,

        kann Netscape 4 diesen hintergrund nicht ändern?

        nein.

        (Ich dachte bei NC4 wäre CSS mit JSSS implementiert, und ich hatte JS angeschaltet...)

        JavaScript anzuschalten gibt Netscape 4 leider nicht die Fähigkeiten, die bei der Entwicklung von JSSS nicht implementiert wurden. Auch die Angabe "CSS" lässt nicht darauf schließen, dass Netscape 4 den vollen Funktionsumfang von CSS/1.0 (oder besser) beherrscht. Er kann einfach vieles nicht.

        Ich 'schreibe' so viel C-Code, da ist der Weg zum 'programmieren' einer HTML-Seite nicht der weiteste.

        Vielen ist einfach nicht bewusst, dass HTML und Programmierung zwei sich nicht überschneidende Dinge sind, darum die Erwähnung.

        Und wie tue ich das am besten um auch damit kompatibel zu bleiben?

        Das kannst Du selbst beantworten, wenn Du genügend Erfahrung mit den unterschiedlichen Browsern hast :-) Kurz gesagt: Verwende nur das, was die Browser auch beherrschen. Orientiere Dich am kleinsten gemeinsamen Nenner (sprich: dem Browser mit den größten Problemen), das macht es einfacher.

        Die Seite müsste dann ja doch testen was für ein Browser benutzt wird

        Nein. Die Seite macht einfach nichts, was mit irgendeinem Browser[1] nicht geht. That's ist. KISS.

        [1] (Wobei ich hier nicht von Browsern reden möchte, die z.B. (gar) kein CSS oder JavaScript können bzw. es deaktiviert haben. Dass es dort anders wird, sollte jedem klar sein.)

        da ja manche eben verschiedene Wege zum selben Ziel benutzen.

        Strukturell (sprich: HTML betreffend) nicht. Wenn Du DHTML verwenden möchtest, wird es schwierig - da machst Du diverse Abfragen mit JavaScript (if (document.getElementById) ...) und musst mit der HTML-Struktur höllisch aufpassen. Solche Dinge wie "verwende sowohl name als auch id" und "positionierte <div> sind Layer" gehören da zu den Standard-Problemen.

        Warum werden dann bitte derartige 'Featuers' in einen browser eingebaut?

        Das frag bitte die Browserhersteller ;-)

        Oder besser: warum sieht man es in CSS dann überhaupt vor?

        Gegenfrage: Warum glaubst Du, dass man benutzen _sollte_, was theoretisch möglich sein könnte? Nicht alles was man tun kann, ist auch gut - zumindest nicht allgemein. Gewisse Dinge sind vielleicht in Ausnahmefällen brauchbar, aber keinesfalls in der Allgemeinheit.

        Wenn man davon ausgeht, dass man nicht voraussetzen kann, sollte man gleich wieder für einen DOS-Browser im Text-Modus Seiten schreiben...

        Dass JavaScript und CSS deaktiviert werden, ist absolut alltäglich: Den einen nerven die vielen Popups, der andere hat eine starke Sehschwäche und kann mit schlechtem CSS verseuchte Seiten ansonsten gar nicht lesen. Prinzipiell hast Du aber recht, man sollte _grundsätzlich_ an _ausnahmslos alle_ Clients (nicht nur Browser! Es gibt noch viel mehr!) denken. Die Schlussfolgerung, damit müsse man auf Features verzichten, die ein Textbrowser nicht beherrscht, ist falsch - HTML ist systemunabhängig konzipiert.

        Cheatah

        1. Hi,

          Nein. Die Seite macht einfach nichts, was mit irgendeinem Browser[1] nicht geht. That's ist. KISS.

          Ob das der richtige Weg ist sei mal dahingestellt...

          [1] (Wobei ich hier nicht von Browsern reden möchte, die z.B. (gar) kein CSS oder JavaScript können bzw. es deaktiviert haben. Dass es dort anders wird, sollte jedem klar sein.)

          Oder besser: warum sieht man es in CSS dann überhaupt vor?

          Gegenfrage: Warum glaubst Du, dass man benutzen _sollte_, was theoretisch möglich sein könnte? Nicht alles was man tun kann, ist auch gut - zumindest nicht allgemein. Gewisse Dinge sind vielleicht in Ausnahmefällen brauchbar, aber keinesfalls in der Allgemeinheit.

          Trotzdem rechtfertigt das nicht das Nicht-Benutzen der angebotenen Ressourcen, die ja nicht nur theoretisch sondern auch praktisch möglich sind! (wofür werden dann in einem Standart derartige Möglichkeiten angeboten?)

          Bernd

          1. hi

            Trotzdem rechtfertigt das nicht das Nicht-Benutzen der angebotenen Ressourcen, die ja nicht nur theoretisch sondern auch praktisch möglich sind! (wofür werden dann in einem Standart derartige Möglichkeiten angeboten?)

            Dann darf man sich nicht auf das Funktionieren dieser Befehle verlassen. Grundsätzlich muss ein Text-Inhalt in jedem Browser vom Textbrowser bis zu Mozilla nutzbar sein. Bilder die als Text-Ersatz dienen haben dafür ja das alt=""-Attribut.
            Übrigens ist festgelegt, dass Browser, die Befehle nicht kennen diese in HTML und CSSeinfach ignorieren, was ja auch idr. klappt. Zu den Ausnahmen, die speziell Netscape 4 betreffen, wurde hier schon mehr als Genug immer wieder gesagt.

            gruss Kai

          2. Hi Bernd,

            Oder besser: warum sieht man es in CSS dann
            überhaupt vor?

            weil es für funktionierende, standardkonforme Browser der richtige Weg ist, diese Features in der vom Standard vorgegebenen Form zu verwenden.

            (wofür werden dann in einem Standart derartige
            Möglichkeiten angeboten?)

            Weil der Standard definiert, wie es zu funktionieren hat, wenn sich alle an ihn halten.

            In der Realität hast Du zwei Möglichkeiten:
            a) nicht-Standard-Browser auch unterstützen oder
            b) nicht-Standard-Browser ignorieren.
            Was von beiden durch Deine Aufgabenstellung (!) legalisiert wird, kannst nur Du selbst entscheiden.

            Viele Grüße
                  Michael

  3. Hallo,

    da sprichst Du eine wahre Glaubensfrage an. (die natürlich, wie bei jedem Glauben auf der Welt, einige gerne auch als "Wissensfrage" betitulieren würden ;-))) - und bei Glaubensfragen gibts immer viele Schattierungen.

    Meine persönliche Meinung: so toll sind die Browserspezifischen Dinge der neueren Browser nicht, daß es sich dafür lohnt, komplett seperate Seiten zu erstellen. Diese Energie solte man lieber in den Gehalt der Seite stecken.

    Aber auch wen Du Dich an den "Standart" hälts und alle Browserspezifische Dinge außen vorläst, wirst Du schnell feststellen, daß bei manchen Dingen die Browser sich trotzdem höchst individuell verhalten. Auch verhalten sich die Besucher "dreisterweise" (;-) ) sehr individuell. Die einen haben JS aus, die anderen nehmen ungerne bis gar keine Plugins an, Framehasser wollen auch auf ihren Bildschirm keine Frames sehen, manche surfen ohne Grafiken. Ich bin mit einer blossen Textformulierung ("drücken Sie die linke Maustaste") mal gestolpert. Mancher Mac-Benutzer fand diese Formulierung iritierend, weil die zum Teil nur eine Maustaste haben ;-) Es ist also relativ leicht, die eine oder andere Besuchergruppe nicht das zu bieten, was man eigendlich wollte.... Ich selber überlege dann immer, ob ich es mir leisten kann (bzw mein Kunde), eine bestimmte Gruppe außen vor zu lassen. Auch das ist eine Glaubensfrage. Bei meiner privaten Seite zum Bsp, die für niemanden wichtig ist, kann ich da "Browseraroganter" sein als bei einer Pensions-Seite für eine Unterkunft auf einer Ferieninsel. Die nehmen nämlich auch gerne Opera-Benutzer oder IE4-Benutzer als Gäste auf. Aber auch hier nehme ich nicht auf jede Eventualitäten Rücksicht.

    Grundsatz für mich: je mehr Menschen ich erreichen will, desto mehr sollte man sich an reinem html mit "behutsamen css" halten und darauf verzichten, daß Aussehen der Seite festzementieren zu wollen. Es ist eine Gradwanderung. Irgendjemand wird bestimmt immer durchs Raster fallen ;-))

    Chräcker

    http://www.Stempelgeheimnis.de