Ceres: Das Problem der unterschiedlichen Browser & Elementdarstellungen

Hallo!

Ich habe es endlich mal hinbekommen, das im Firefox mein Seitenlayout einigermaßen dargestellt wird (einges ist da noch zu machen), aber der Internet Explorer verdirbt mir alles... der hält sich nicht an Elementgrößen.
Also, wenn der Inhalt im Div-Element über die Breite hinaus geht, dann wird das Div-Element einfach breiter gemacht.
Es ist absicht das ich an der Stelle wo der Inhalt rein kommt mit Prozenten arbeite, schließlich soll die Seite bei egal welcher Browsergröße sich dementsprechend anpassen.

Muss ich jetzt doch javascript lernen oder hat noch jemand eine Idee?

Hier meine Seite: http://schneetigerin.de/beispiel.html

Danke im vorraus & Grüße
Ceres

  1. Hallo Ceres,

    Ich habe es endlich mal hinbekommen, das im Firefox mein Seitenlayout einigermaßen dargestellt wird (einges ist da noch zu machen), aber der Internet Explorer verdirbt mir alles...

    Das ist die richtige Reihenfolge beim Testen.

    der hält sich nicht an Elementgrößen.

    Deine DTD

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    entspricht keiner der <http://de.selfhtml.org/css/formate/box_modell.htm#standardkonform@title=Dokumenttyp-Deklarationen für den standardkonformen Modus>. Damit läuft der IE ungebremst in den <http://de.selfhtml.org/css/formate/box_modell.htm#box_model_bug@title=Box Model Bug>. Ändere das und teste dann abermals.

    Grüße
     Roland

    1. Hi Roland!

      Deine DTD

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

      entspricht keiner der <http://de.selfhtml.org/css/formate/box_modell.htm#standardkonform@title=Dokumenttyp-Deklarationen für den standardkonformen Modus>. Damit läuft der IE ungebremst in den <http://de.selfhtml.org/css/formate/box_modell.htm#box_model_bug@title=Box Model Bug>. Ändere das und teste dann abermals.

      Grüße
      Roland

      Sorry, aber auf der Seite zu dem Link steht: Der Dokumenttyp wirkt sich in diesen Browsern hauptsächlich auf die Fehlerkorrektur, nicht aber auf das Box-Modell aus. Kann ich das Box-Modell des IE irgendwie umgehen.. oder vllt. hat ja jemand ein javascript für mich das weiterhelfen kann... :/

      Aber danke schonmal für den Hinweise! :)

      1. hi,

        Sorry, aber auf der Seite zu dem Link steht: Der Dokumenttyp wirkt sich in diesen Browsern hauptsächlich auf die Fehlerkorrektur, nicht aber auf das Box-Modell aus.

        Das bezieht sich (nach meiner Lesart) auf alle Browser _außer_ dem IE.

        Kann ich das Box-Modell des IE irgendwie umgehen..

        Die falsche Interpretation des Box Models durch den IE 6 umgehst du, wie schon gesagt, dadurch, dass du ihn aus dem Quirks Mode herausholst.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo!

          Die falsche Interpretation des Box Models durch den IE 6 umgehst du, wie schon gesagt, dadurch, dass du ihn aus dem Quirks Mode herausholst.

          »»

          Ich hab schon folgendes versucht:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

          Beziehungsweise:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">

          Hat beides nichts verändert...

          Laut der Box-Model-Beschreibung taucht nur ein Fehler bei Breiten- /Abstandsangaben (padding, margin, width) auf, wenn man sie in einem Element nutzt. Das mache ich ja nicht, mein Problem ist das der IE einfach nicht mit Prozentangaben umgehen kann, wenn ich eine feste Breite eingebe wird auch alles korrekt dargestellt (in meiner Auflösung), doch wie bereits erwähnt hat es einen Grund das ich mit Prozenten arbeite!

          Hast du dir die Seite und den Quellcode denn mal angetan? Vllt. entdeckst du ja einen ganz anderen Fehler.

          Grüße

        2. Da ich auf den anderen Thread nicht mehr antworten kann (http://forum.de.selfhtml.org/?t=136735&m=888243)... beantworte ich das hier.

          Dann löse das Problem, anstatt Symptome zu bekämpfen.
          Wie, wurde dir dort bereits vorgeschlagen.

          Hat mich allerdings nicht weitergebracht, ich sehe nur die Möglichkeit die Breite und Höhe für dieses Div zu berechnen und dann als Attribute dort einzufügen. Wie soll ich das bitte anders machen als mit JS?

          Ich bekämpfe keine Symptome sondern den IE.. bzw. seine Macken/abnormes Verhalten. :p

          »» Mein momentaner Code sieht so aus (ich rufe die funktion im body auf, onresize="ieContentgroesse()"):
          Und was passiert dann?

          Es ändert sich nichts, es sieht genauso aus wie ohne JavaScript Code...

          Aber die zeit, um die Tipps für Fragende zu lesen, und eine nachvollziehbare Problembeschreibung hast du, bzw. solltest du haben, bzw. musst du dir nehmen, wenn du hier Hilfe bekommen willst.

          Ja, entschuldige.. man sollte nicht hektisch sein, wenn man sowas verfasst.
          Also ich will die Größe des bodys abfragen, von diesem die Breite des linken und des rechten Divs abziehen, um die Breite des mittleren zu bestimmen. Das selbe will ich auch mit der Höhe machen.
          Aber er scheint nichts zu machen. Momentan sage ich sogar document.write() und will das ausgeben lassen, aber er schreibt mir noch nicht mal den Text hin. Liegt das an Einstellungen in meinem IE?

          Ich bin echt am verzweifeln...

          1. Hi,

            Da ich auf den anderen Thread nicht mehr antworten kann (http://forum.de.selfhtml.org/?t=136735&m=888243)... beantworte ich das hier.

            ja, ich war so frei. ;-)
            Und ich unterstütze wahsagas Tip, an den Ursachen zu arbeiten.

            Ich bekämpfe keine Symptome sondern den IE.. bzw. seine Macken/abnormes Verhalten. :p

            Ok, aber mit falschen Mitteln. Ein CSS-Problem solltest Du über CSS zu lösen versuchen.

            Aber er scheint nichts zu machen. Momentan sage ich sogar document.write() und will das ausgeben lassen, aber er schreibt mir noch nicht mal den Text hin. Liegt das an Einstellungen in meinem IE?

            Wenn Du Javascript deaktiviert hast: Ja.
            Und gerade IE-User sollten das tun bzw. haben es im Vergleich zu Nutzern anderer Browser relativ häufig getan, so dass Deine Javascript-Korrektur nicht greifen kann.

            Dein Problem ist auch nicht das Box-Modell, sondern die Unfähigkeit des IE, bei Positionsangabe von mehr als einer Koordinate die Breite und/oder Höhe zu berechnen.
            Eine Lösung könnte sein, Dein Frame-Denken aufzugeben und eine ganz normal benutzbare Seite zu erstellen - mit nur einem Scrollbalken am Rand. Hierzu kannst Du dann auch auf position verzichten.

            freundliche Grüße
            Ingo

            1. Und ich unterstütze wahsagas Tip, an den Ursachen zu arbeiten.

              Ich bekämpfe keine Symptome sondern den IE.. bzw. seine Macken/abnormes Verhalten. :p
              Ok, aber mit falschen Mitteln. Ein CSS-Problem solltest Du über CSS zu lösen versuchen.

              Na gut, aber ich finde keinen Fehler im CSS... du etwa? o.O

              Aber er scheint nichts zu machen. Momentan sage ich sogar document.write() und will das ausgeben lassen, aber er schreibt mir noch nicht mal den Text hin. Liegt das an Einstellungen in meinem IE?
              Wenn Du Javascript deaktiviert hast: Ja.
              Und gerade IE-User sollten das tun bzw. haben es im Vergleich zu Nutzern anderer Browser relativ häufig getan, so dass Deine Javascript-Korrektur nicht greifen kann.

              Ok, das ist ein gutes Argument, mein Chef hatte allerdings gemeint ich muss da eh mit JS arbeiten, hab auch versucht das zu umgehen, scheint aber so nicht zu funktionieren...

              Dein Problem ist auch nicht das Box-Modell, sondern die Unfähigkeit des IE, bei Positionsangabe von mehr als einer Koordinate die Breite und/oder Höhe zu berechnen.
              Eine Lösung könnte sein, Dein Frame-Denken aufzugeben und eine ganz normal benutzbare Seite zu erstellen - mit nur einem Scrollbalken am Rand. Hierzu kannst Du dann auch auf position verzichten.

              Entschudlige, aber eine Seite wo in der Mitte der Text zum lesen ist, ist für mich ganz normal und auch das man dann in der Mitte scrollen kann... am Rand soll nicht gescrollt werden, weil rechts ja wie gesagt ein anderes Element ist, das ist vom Kunden so gewünscht.. und der Kunde wäre viel zu verwirrt wenn rechts ein Scrollbalken ist und nur in der Mitte sich was bewegt.. ;)
              Oh, ich hab's auch schon mit Tabellen versucht, aber das ist irgendwie noch umständlicher und ich glaub auch nich das das richtig funktionieren würde. *g*

              Tja, der Kunde ist König... was mach ich denn jetzt nur?! *seufz*

              Bekommt man mittels PHP raus wie Breit das Browserfenster ist?
              Bzw. ob es funzen würde wenn ich den mittigen und rechten Teil in ein Div packe und darein nochma divs oder Tabellen wo das ganz in der Mitte zu scrollen geht?! *grübel*

              1. hi,

                Entschudlige, aber eine Seite wo in der Mitte der Text zum lesen ist, ist für mich ganz normal

                Ja, für jeden.

                und auch das man dann in der Mitte scrollen kann...

                Das ist extrem hässlich, und für mich schlechter zu bedienen.
                Insbesondere dann, wenn dann auf Grund der Gesamthöhe der Seite doch wieder ein "Komplett-Scrollbalken" hinzukommt - dann scrollen bei Bewegung meines Mausrades unterschiedliche Bereiche, je nachdem, wo mein Cursor gerade ist, etc.

                am Rand soll nicht gescrollt werden, weil rechts ja wie gesagt ein anderes Element ist, das ist vom Kunden so gewünscht..

                Da besteht kein Zusammenhang.
                Du kannst "am Rand" scrollen, und fix positionierte Elemente nutzen, wenn bestimmte Bereiche dauerhaft sichtbar sein sollen.

                und der Kunde wäre viel zu verwirrt wenn rechts ein Scrollbalken ist und nur in der Mitte sich was bewegt.. ;)

                Das ist sein problem, wenn er außer der miserablen Bedienbarkeit von Frames bisher nichts kennt.
                Dann mache ihn doch mal mit dem aktuellen Stand der Technik bekannt.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
              2. Hi,

                Na gut, aber ich finde keinen Fehler im CSS... du etwa? o.O

                Einen Fehler nicht - aber eine Formatierung, die der IE nicht beherrscht; aber das hatte ich Dir ja schon geschrieben.

                Ok, das ist ein gutes Argument, mein Chef hatte allerdings gemeint ich muss da eh mit JS arbeiten, hab auch versucht das zu umgehen, scheint aber so nicht zu funktionieren...

                Das "Funktionieren" einer Website sollte nie von Javascript abhängig gemacht werden. Javascript kann sehr gut dazu dienen, den Komfort zu verbessern. Erläutere dies Deinem Chef und verweise ggfsl. an dieses Forum oder auch an mich.

                am Rand soll nicht gescrollt werden, weil rechts ja wie gesagt ein anderes Element ist, das ist vom Kunden so gewünscht.. und der Kunde wäre viel zu verwirrt wenn rechts ein Scrollbalken ist und nur in der Mitte sich was bewegt.. ;)

                das ist - wie wahsaga schon andeutete - Unsinn. Weder weisst Du, wie hoch das Fenster des Besuchers ist, noch erwartet der Besucher etwas anderes als seinen gewohnten Scrollbalken am rechten Browserrand, wenn die Seite höher als sein Fenster ist.
                Um bestimmte Elemente am Fensterrand zu fixieren, schau Dir mal http://de.selfhtml.org/css/layouts/anzeige/fixiert_ie.htm an. Der Vorteil ist, dass trotzdem die Seite als Ganzes normal gescrollt werden kann.

                Tja, der Kunde ist König... was mach ich denn jetzt nur?! *seufz*

                Informiere ihn über Sinn und Unsinn bestimmter Forderungen. Mache ihm klar, dass seine Seite nicht nur ihm gefallen muß, sondern auch oder vor allem den Besuchern.

                Bekommt man mittels PHP raus wie Breit das Browserfenster ist?

                Natürlich nicht. Woher sollte der Server wissen, welche Bedingungen beim Client herrschen? Er weiss ja noch nicht einmal mit Sicherheit, ob und welcher Browser die Resource anfordert.

                freundliche Grüße
                Ingo