Ingo Turski: unterschiedliche Interpretation von 'clear'

Hi,

angeregt durch eine Randdiskussion zu anderem Thema (HTML: Schriftgroessenproblem [pref:t=64770&m=372598]) sowie durch ein weiteres kürzlich festgestelltes Phänomen unterschiedlicher Interpretation der CSS-Eigenschaft 'clear' habe ich mir die Spezifikation des W3C <http://www.edition-w3c.de/TR/1998/REC-CSS2-19980512/kap09.html#heading-9.5.1 > einmal genau durchgelesen, komme aber nicht dahinter, wie diese korrekt umzusetzen ist - oder anders gesagt: welche Browser das richtig und welche das falsch machen.
Zur Zeit mag die Frage ja eher akademischer Natur sein, aber da gerade Mozila und auch Opera Bugs viele recht schnell korrigieren, könnte sie bald eine praktische Relevanz bekommen.

Hierzu habe ich drei Fälle in einer Beispielseite online gestellt: http://www.1ngo.de/web/clear.html.

Beispiel 1:
Standard Zweispalten-Layout - links floatende Box, rechts nicht-floatende Box mit margin-left auf Abstand.
IE (6) und Opera (7.11) setzen ein in der rechten Box enthaltenes clearendes Element bis zum unteren Rand des links-floatenden Elements runter. Mozilla (1.4) hält dagegen keinen entsprechenden Abstand ein - falsch?

Beispiel 2:
ebenfalls Standard Zweispalten-Layout, diesmal floaten beide Boxen, eine links und eine rechts, nebenander. Hier hält keiner der drei Browser einen Abstand ein - falsch?

Beispiel 3:
(aus dem o.g. Thread) vier nacheinander definierte links-floatende Boxen, die dritte Box zusätzlich mit clear:left definiert. Hier setzt Mozilla die vierte Box neben die dritte Box runter, während IE und Opera die vierte Box neben die zweite setzen, das clear also nicht auf diese - nachfolgende - Box anwenden - falsch?

Meine Vermutung habe ich durch die Fragestellung bereits deutlich gemacht. Ich interpretiere beim 1. und 2. Beispiel die Definition
"The generated box is moved below all floating boxes of earlier elements in the source document."
sowie
"* The top outer edge of the float must be below the bottom outer edge of all earlier left-floating boxes"
dahingehend, daß die Position des clearenden Elementes sich an der der zuvor im Quelltext definierten links-floatenden Box orientieren soll.

Im 3. Beispiel sehe ich keinen Anlaß, das clear nicht auch auf die nachfolgende vierte Box anzuwenden, wobei mir in der Spezifikation
"(It may be that the element itself has floating descendants; the 'clear' property has no effect on those.)"
Unklar ist, ob man die vierte Box als 'descendant' (Nachkommen) der dritten Box betrachten kann, auf die dann clear nicht angewendet werden sollte.

Mich würde nun interessieren, Wie Ihr das seht und was nun tatsächlich die richtigen Interpretationen sind.

Freundliche Grüße
Ingo

  1. Hi,

    Standard Zweispalten-Layout - links floatende Box, rechts nicht-floatende Box mit margin-left auf Abstand.
    IE (6) und Opera (7.11) setzen ein in der rechten Box enthaltenes clearendes Element bis zum unteren Rand des links-floatenden Elements runter. Mozilla (1.4) hält dagegen keinen entsprechenden Abstand ein - falsch?

    Dein clear ist IN dem gefloateten Element. Es wird also nur INNERHALB des blau umrandeten div ge-clear-t. Und da ist nix zu clear-en.

    Beispiel 2:
    ebenfalls Standard Zweispalten-Layout, diesmal floaten beide Boxen, eine links und eine rechts, nebenander. Hier hält keiner der drei Browser einen Abstand ein - falsch?

    Welchen Abstand? Auch hier ist clear im INNEREN.

    Beispiel 3:
    (aus dem o.g. Thread) vier nacheinander definierte links-floatende Boxen, die dritte Box zusätzlich mit clear:left definiert. Hier setzt Mozilla die vierte Box neben die dritte Box runter, während IE und Opera die vierte Box neben die zweite setzen, das clear also nicht auf diese - nachfolgende - Box anwenden - falsch?

    M.E. liegt Mozilla hier richtig.

    Im 3. Beispiel sehe ich keinen Anlaß, das clear nicht auch auf die nachfolgende vierte Box anzuwenden, wobei mir in der Spezifikation
    "(It may be that the element itself has floating descendants; the 'clear' property has no effect on those.)"
    Unklar ist, ob man die vierte Box als 'descendant' (Nachkommen) der dritten Box betrachten kann, auf die dann clear nicht angewendet werden sollte.

    Nein, descendant ist das vierte div nicht, denn es ist nicht IN der dritten Box.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      Dein clear ist IN dem gefloateten Element. Es wird also nur INNERHALB des blau umrandeten div ge-clear-t. Und da ist nix zu clear-en.

      das habe ich - wie Du und viele Andere ja auch - bis vor kurzem auch angenommen. Nur heißt es in der Definition des W3C aber:
      "... is moved below all floating boxes of earlier elements in the source document"
      Woraus kann man nun ableiten, daß die Verschachtelung eine Rolle spielt? Ich übersetze diese Passage mit "unter alle floatenden Boxen von früher im Quelltext definierten Elementen gesetzt".

      freundliche Grüße
      Ingo

  2. Hallo.

    angeregt durch eine Randdiskussion zu anderem Thema (HTML: Schriftgroessenproblem [pref:t=64770&m=372598]) sowie durch ein weiteres kürzlich festgestelltes Phänomen unterschiedlicher Interpretation der CSS-Eigenschaft 'clear' habe ich mir die Spezifikation des W3C <http://www.edition-w3c.de/TR/1998/REC-CSS2-19980512/kap09.html#heading-9.5.1 > einmal genau durchgelesen, komme aber nicht dahinter, wie diese korrekt umzusetzen ist - oder anders gesagt: welche Browser das richtig und welche das falsch machen.

    Nimm es bitte nicht persönlich, aber was ich vermisse, ist die Relevanz dieser Frage. Als Autoren/Entwickler sind wir nur die Passagiere auf einem Schiff, dessen Kurs wir nicht bestimmen können. Die Erkenntnis, dass ein bestimmter Browser etwas falsch interpretiert, ein anderer hingegen richtig, sich aber bei anderen Dingen eigenartig verhält, nutzt dir ja maximal in Hinblick auf die freie Zugänglichkeit des Mozilla-Codes, den du dann gegebenenfalls für dich korrigieren kannst. Allerdings nutzt dies dem Rest der Welt eher wenig. Ebenso könntest du dich über den Sinn und Unsinn der parlamentarischen Demokratie im Allgemeinen sowie ihrer Umsetzung in Deutschland im Speziellen ereifern.
    MfG, at

    1. Hi,

      Die Erkenntnis, dass ein bestimmter Browser etwas falsch interpretiert, ein anderer hingegen richtig, sich aber bei anderen Dingen eigenartig verhält, nutzt dir ja maximal in Hinblick auf die freie Zugänglichkeit des Mozilla-Codes, den du dann gegebenenfalls für dich korrigieren kannst.

      schon klar - die Frage habe ich aber gestellt, weil mich a) interessiert, welche Definition standardkonform ist und b) es für die Zukunft relevant sein könnte und sollte, sich bei der Erstellung von Webseiten am Standard zu orientieren, egal wie heute die Umsetzung in den Browsern ist. Setze ich wie im Beispiel 2 ein clearendes Element und hat dies heute noch keine Auswirkung auf die linke Box, so könnte sich dies plötzlich ändern, wenn ein Browserentwickler dies als Fehler auffasst und in künftigen Versionen korrigiert...

      freundliche Grüße
      Ingo

      1. Hallo.

        schon klar - die Frage habe ich aber gestellt, weil mich a) interessiert, welche Definition standardkonform ist und b) es für die Zukunft relevant sein könnte und sollte, sich bei der Erstellung von Webseiten am Standard zu orientieren, egal wie heute die Umsetzung in den Browsern ist. Setze ich wie im Beispiel 2 ein clearendes Element und hat dies heute noch keine Auswirkung auf die linke Box, so könnte sich dies plötzlich ändern, wenn ein Browserentwickler dies als Fehler auffasst und in künftigen Versionen korrigiert...

        Das sehe ich schon ein, aber erstens sind auch schon Dinge nur kurzzeitig von den Browsern unterstützt worden, obwohl der Standard sie vorsieht. Dies kommt einer in seinem zweitem Schritt einer Verschlechterung des der Standard-Konformität gleich. Und zweitens besteht ja schon heute offenbar keine Gewähr, dass alle -- oder auch nur die wenigen wichtigen -- Browser-Hersteller sich deinen Erkenntnissen anschließen.
        Verstehe mich bitte nicht falsch: Ich möchte die Fortschritte in MSs Box-Modell, Operas genreller CSS-Unterstützung und von Mozilla in jeder Hinsicht sicher nicht schmälern -- schon weil ich ja selbst davon profitiere --, aber meinst du, dass ausgerechnet W3C-Mitglieder sich von eier solchen Diskussion überzeugen lassen. Deren Draht zum Standard ist doch viel kürzer.
        MfG, at

        1. Hi,

          aber meinst du, dass ausgerechnet W3C-Mitglieder sich von eier solchen Diskussion überzeugen lassen. Deren Draht zum Standard ist doch viel kürzer.

          ich will ja hier niemanden überzeugen ... vielmehr bin ich an einer Antwort interessiert, wie der aktuelle Standard korrekt umzusetzen ist - oder ob es tatsächlich in diesem Punkt unterschiedliche richtige Interpretationen gibt.

          freundliche Grüße
          Ingo

          1. Hallo.

            ich will ja hier niemanden überzeugen ... vielmehr bin ich an einer Antwort interessiert, wie der aktuelle Standard korrekt umzusetzen ist - oder ob es tatsächlich in diesem Punkt unterschiedliche richtige Interpretationen gibt.

            Und ich will eigentlich nur klarstellen, dass die Browser-Hersteller im W3C die Standards schaffen, die sie hinterher so umsetzen, wie sie sie interpretieren -- wenn sie sie nicht schlicht ignorieren. Dass andere Interpretationen möglich, sinnvoll, zweckmäßig, ... sind, will ich ja gar nicht in Abrede stellen.
            MfG, at

    2. Hallo,

      ... unterschiedlicher Interpretation der CSS-Eigenschaft 'clear'

      Nimm es bitte nicht persönlich, aber was ich vermisse, ist die Relevanz dieser Frage. Als Autoren/Entwickler sind wir nur die Passagiere auf einem Schiff, dessen Kurs wir nicht bestimmen können. Die Erkenntnis, dass ein bestimmter Browser etwas falsch interpretiert, ein anderer hingegen richtig, sich aber bei anderen Dingen eigenartig verhält,  nutzt dir ja maximal in Hinblick auf die freie Zugänglichkeit des Mozilla-Codes, den du dann gegebenenfalls für dich korrigieren kannst. Allerdings nutzt dies dem Rest der Welt eher wenig. Ebenso könntest du dich über den Sinn und Unsinn der parlamentarischen Demokratie im Allgemeinen sowie ihrer Umsetzung in Deutschland im Speziellen ereifern.

      das Problem mit clear und Opera 7 vs. andere Browser habe ich wegen der hohen Bedeutung für ein 'barrierefreies Webdesign' sowie ein 'semantisch stimmiges HTML' wiederholt hier im Forum dargelegt.

      Da die Interpretation von Mozilla und anderen einschließlich Opera 6 richtiger scheint und sinnvoller ist, ist die Konsequenz die Interpreteation des Mozilla als richtig zu betrachten, ggf. Opera vom Bug zu informieren und wegen der 0.5-0.7% Opera 7 User den Code nicht zu versauen.

      Die Frage, ob Opera es falsch macht, ist dabei relevant, sei es um Opera Software darauf hinzuweisen, oder um notfalls die W3C-Specs in Frage zu stellen, oder andere Gründe, z.B. die Zukunftstauglichkeit des HTML-Code besser abschätzen zu können.

      Grüsse

      Cyx23

      1. Hi,

        das Problem mit clear und Opera 7 vs. andere Browser habe ich wegen der hohen Bedeutung für ein 'barrierefreies Webdesign' sowie ein 'semantisch stimmiges HTML' wiederholt hier im Forum dargelegt.

        interessanter Weise geht es hier nicht um Opera vs. andere Browser sondern um Mozilla vs. andere Browser bzw. evtl. (im Beispiel 2) um alle Browser vs. W3C. (Sogar Netscape 4.78 interpretiert diese Beispiele wie Opera und IE - mit Ausnahme des 3. Beispiels, wo er das clear überhaupt nicht umsetzt.)

        freundliche Grüße
        Ingo

        1. Hallo Ingo,

          das Problem mit clear und Opera 7 vs. andere Browser habe ich wegen der hohen Bedeutung für ein 'barrierefreies Webdesign' sowie ein 'semantisch stimmiges HTML' wiederholt hier im Forum dargelegt.

          interessanter Weise geht es hier nicht um Opera vs. andere Browser sondern um Mozilla vs. andere Browser bzw. evtl. (im Beispiel 2) um alle Browser vs. W3C. (Sogar Netscape 4.78 interpretiert diese Beispiele wie Opera und IE - mit Ausnahme des 3. Beispiels, wo er das clear überhaupt nicht umsetzt.)

          "Mozilla vs. andere Browser" hängt zunächst von der Vorgehensweise ab. Bei üblichen und meist auch nötigen Browserweichen, ob per Cond.Comments oder CSS-Selektoren, erhält der IE sein anders interpretiertes CSS und kann dann Layout detaillierter umsetzen.
          Das Problem Beispiel 3 hatte ich (mit float:left nur bei div#eins und div#drei) zuerst unter 'Mozilla float-bug?' gepostet, dann als 'Opera float-bug' betrachtet.

          "Mozilla vs. andere Browser" könnte letztendlich bedeuten, dass Opera bei Version 7 im Gegensatz zur Version Opera 6 auch an falsche Interpretationen der IE angepasst ist, was sich abgesehen von der Frage nach der grundsätzlichen Richtigkeit praktisch schwer nutzen lässt.

          Grüsse

          Cyx23

      2. Hallo.

        Die Frage, ob Opera es falsch macht, ist dabei relevant, sei es um Opera Software darauf hinzuweisen, oder um notfalls die W3C-Specs in Frage zu stellen, oder andere Gründe, z.B. die Zukunftstauglichkeit des HTML-Code besser abschätzen zu können.

        Und du meinst aus sicher sicherer Quelle zu wissen, dass diese Dinge im W3C nicht hinreichend von den Beteiligten diskutiert werden? Und du meinst weiterhin zu wissen, dass das W3C nicht in er Lage ist, Unklarheiten zu beseitigen, wenn die eigenen Mitglieder innerhalb einer solchen Diskussion darauf hinweisen? Wäre dem tatsächlich so, gäbe es die aktuellen Standards nicht.
        MfG, at

        1. Hallo,

          Die Frage, ob Opera es falsch macht, ist dabei relevant, sei es um Opera Software darauf hinzuweisen, oder um notfalls die W3C-Specs in Frage zu stellen, oder andere Gründe, z.B. die Zukunftstauglichkeit des HTML-Code besser abschätzen zu können.

          Und du meinst aus sicher sicherer Quelle zu wissen, dass diese Dinge im W3C nicht hinreichend von den Beteiligten diskutiert werden? Und du meinst weiterhin zu wissen, dass das W3C nicht in er Lage ist, Unklarheiten zu beseitigen, wenn die eigenen Mitglieder innerhalb einer solchen Diskussion darauf hinweisen? Wäre dem tatsächlich so, gäbe es die aktuellen Standards nicht.

          nachdem sich abzeichnet dass Opera 7 es falsch macht stellt sich "notfalls die W3C-Specs in Frage zu stellen" erstmal sowieso nicht.
          Hier wäre es denn eher die Frage ob es gerechtfertigt ist die rund 0.5% Opera 7 Anwender wieder mal mit einer Extrawurst zu versorgen, nur weil ein paar Freaks und/oder Heiseredakteure das Teil hochhalten; zumindest sollte man (ich hab da mein Soll schon bei früheren Versionen übererfüllt und hier den Beispielcode 3 gestellt) Opersoftware das Problem darlegen, wenn Opersoftware es nicht womöglich sowieso im Rahmen einer Anpassung an den IE 6 mehr oder weniger bewußt so ermöglicht hat.

          Aber nochmals zu deinen "Fragen", was willst du da eigentlich erzählen? Du oder das W3C habe das perpetuum mobile erfunden, oder das W3C sei besonders gemeinnützig?

          Grüsse

          Cyx23

          1. Hallo.

            Hier wäre es denn eher die Frage ob es gerechtfertigt ist die rund 0.5% Opera 7 Anwender wieder mal mit einer Extrawurst zu versorgen, nur weil ein paar Freaks und/oder Heiseredakteure das Teil hochhalten;

            Danke, ...

            Aber nochmals zu deinen "Fragen", was willst du da eigentlich erzählen? Du oder das W3C habe das perpetuum mobile erfunden, oder das W3C sei besonders gemeinnützig?

            ... an dieser Stelle erübrigt sich für mich jede weitere Diskussion zu diesem Thema.
            MfG, at

          2. zumindest sollte man (ich hab da mein Soll schon bei früheren Versionen übererfüllt und hier den Beispielcode 3 gestellt) Opersoftware das Problem darlegen

            Deine Ausreden werden auch nicht besser. Da war »ich bin schließlich kein Betatester« noch konsequenter, jetzt kommst du mit erfülltem »Soll«, was mir eher einem Alibi für das nicht wollen klingt. Melde solche Bugs doch einfach bzw. spreche sie an geeigneter Stelle an, um deren Hintergrund zu klären, wenn sie dich stören, und fordere nicht immer wieder, dass endlich etwas geschehen müsse, aber es nicht an dir liege und nicht deine Aufgabe sei, etwas an der Lage zu ändern. So verbringst du offenbar lieber Zeit damit, die Bugs zu beklagen. (Mal ganz abgesehen davon, dass es bei Opera in dein Konzept passt, das hat System.)
            Aber bitte, wenn du dich so gerne mit dem Drehen der Gebetsmühle beschäftigst und auch weiterhin ins alte und selbe Horn blasen möchtest.

            Hallo, Déjà-vu.

            1. Hallo Mathias,

              Deine Ausreden werden auch nicht besser. Da war »ich bin schließlich kein Betatester« noch konsequenter, jetzt kommst du mit erfülltem »Soll«, was mir eher einem Alibi für das nicht wollen klingt. Melde solche Bugs doch einfach bzw. spreche sie an geeigneter Stelle an, um deren Hintergrund zu klären, wenn sie dich stören, und fordere nicht immer wieder, dass endlich etwas geschehen müsse, aber es nicht an dir liege und nicht deine Aufgabe sei, etwas an der Lage zu ändern. So verbringst du offenbar lieber Zeit damit, die Bugs zu beklagen. (Mal ganz abgesehen davon, dass es bei Opera in dein Konzept passt, das hat System.)

              gerade hier sollte ja eigentlich eine geeignete Stelle sein um "deren Hintergrund zu klären". Dein Beitrag fällt allerdings sehr dürftig aus, sei es weil du Opera nicht benutzt, und/oder die Bedeutung des Problems gering, m.E. zu meiner Überraschung viel zu gering, einschätzt.

              Und ich sehe allerdings in der Isolierung von entspr. Code eine Leistung, wie auch in den Beispielen und Posting von Ingo mit dem Vorteil einer auch an Opera mitteilbaren URI.

              Da das hier vorliegende Problem gerade für tableless-layout und Strategien zur Barrierefreiheit sehr wichtig werden kann, und hier im Forum Kompetenz sowohl hinsichtlich der betr. Anwendung als auch bzgl. der W3C Specs vorliegen, ist es naheliegend die Geschichte hier zu diskutieren, zumal ein solcher Austausch einem Forum doch irgendwie entspricht.

              Den von mir hier im Forum früher vorgestellten Bug von Opera 7.1 bei Tabellen hatte ich übrigens hier im Forum im Detail dargelegt und auch an Opera mit extra Beispiel und URI mitgeteilt, tatsächlich ist in 7.2 der Bug nicht mehr enthalten, mir ist allerdings das Gesamtpaket von Bug-Isolierung bis Meldung z.Zt. sowohl für Mozilla als auch für Opera zu aufwendig, und da halte ich es für legitim hier darauf hinzuweisen dass ich voraussichtlich keine Meldung mache.

              Aber bitte, wenn du dich so gerne mit dem Drehen der Gebetsmühle beschäftigst und auch weiterhin ins alte und selbe Horn blasen möchtest.

              Diese Nummer führst du gerade vor. Was Opera angeht, halte ich nach wie vor die womöglich zu oft an den IE angepassten Verhaltensweisen für sehr ärgerlich, wie auch die mangelnde Abwärtskomtabilität zu vorherigen Operaversionen.
              Und gemessen am eigenen Anspruch "fastest.." und dem Anspruch einiger Operaanwender einen besonders konformen Browser der womöglich zur Beurteilung von Codequalität geeignet sei ist es nicht nur peinlich, sondern erfordert viel stärker als bei anderen Browsern Aufklärung über das leider zu oft kontraproduktive und unberechenbare Verhalten dieses kaum genutzten Browsers. Das ist dann aber womöglich nicht dasselbe Horn sondern derselbe IE, der aber in immer anderen Varianten in Operaversionen sein Stelldichein gibt.

              Grüsse

              Cyx23

              1. Hallo Cyx,

                gerade hier sollte ja eigentlich eine geeignete Stelle sein um "deren Hintergrund zu klären". Dein Beitrag fällt allerdings sehr dürftig aus, sei es weil du Opera nicht benutzt, und/oder die Bedeutung des Problems gering, m.E. zu meiner Überraschung viel zu gering, einschätzt.

                Das war nicht mein Anspruch, was ich mit dem Hintergrund meinte, ließe sich nur in Absprache mit Opera klären, also, wie du sagtest, ob »Opersoftware es nicht womöglich sowieso im Rahmen einer Anpassung an den IE 6 mehr oder weniger bewußt so ermöglicht hat«.

                Und ich sehe allerdings in der Isolierung von entspr. Code eine Leistung, wie auch in den Beispielen und Posting von Ingo mit dem Vorteil einer auch an Opera mitteilbaren URI.

                Das wollte ich gar nicht bezweifeln. Mir kommt es nur so vor, dass du offenbar Wissen über zahlreiche Bugs hast, sie untersucht hast und Testcases erarbeitet hast, diese aber zunächst einmal nur sporadisch veröffentlichst, dich danach wieder für einige Zeit ins Vage und Ätherische zurückziehst und dich im Allgemeinen aus fadenscheinigen Gründen zu weigern scheinst, sie hier speziell Opera zu übermitteln, aber es dennoch für notwendig hältst und auch keine Gelegenheit auslässt, dies zu betonen. Und das finde ich schade, weil es eben nicht sonderlich zur Entwicklung beiträgt, obwohl du das Wissen und die Möglichkeit hast.

                Da das hier vorliegende Problem gerade für tableless-layout und Strategien zur Barrierefreiheit sehr wichtig werden kann, und hier im Forum Kompetenz sowohl hinsichtlich der betr. Anwendung als auch bzgl. der W3C Specs vorliegen, ist es naheliegend die Geschichte hier zu diskutieren, zumal ein solcher Austausch einem Forum doch irgendwie entspricht.

                Sicherlich.

                Den von mir hier im Forum früher vorgestellten Bug von Opera 7.1 bei Tabellen hatte ich übrigens hier im Forum im Detail dargelegt und auch an Opera mit extra Beispiel und URI mitgeteilt, tatsächlich ist in 7.2 der Bug nicht mehr enthalten, mir ist allerdings das Gesamtpaket von Bug-Isolierung bis Meldung z.Zt. sowohl für Mozilla als auch für Opera zu aufwendig, und da halte ich es für legitim hier darauf hinzuweisen dass ich voraussichtlich keine Meldung mache.

                Das glaube ich ja und ich verlange auch nichts. Es bestünde aber z.B. auch die Möglichkeit, solche Fälle unverbindlich in den opera-Newsgroups beziehungsweise im my.opera-Forum anzusprechen, um es den dort Engagierten nahezubringen, eventuell sogar direkt den mitlesenden Entwicklern, die an solchen Fällen dranbleiben und eventuell über ähnliche Fälle Auskunft geben können.

                Und gemessen am eigenen Anspruch "fastest.." und dem Anspruch einiger Operaanwender einen besonders konformen Browser der womöglich zur Beurteilung von Codequalität geeignet sei ist es nicht nur peinlich, sondern erfordert viel stärker als bei anderen Browsern Aufklärung über das leider zu oft kontraproduktive und unberechenbare Verhalten dieses kaum genutzten Browsers. Das ist dann aber womöglich nicht dasselbe Horn sondern derselbe IE, der aber in immer anderen Varianten in Operaversionen sein Stelldichein gibt.

                Ja, über diese fragwürdige Grundstrategie, sich dem MSIE im Guten wie im Schlechten anzunähern, hatten wir bereits gesprochen.

                Mathias

                1. Hallo Mathias,

                  Das wollte ich gar nicht bezweifeln. Mir kommt es nur so vor, dass du offenbar Wissen über zahlreiche Bugs hast, sie untersucht hast und Testcases erarbeitet hast, diese aber zunächst einmal nur sporadisch veröffentlichst, dich danach wieder für einige Zeit ins Vage und Ätherische zurückziehst und dich im Allgemeinen aus fadenscheinigen Gründen zu weigern scheinst, sie hier speziell Opera zu übermitteln, aber es dennoch für notwendig hältst und auch keine Gelegenheit auslässt, dies zu betonen. Und das finde ich schade, weil es eben nicht sonderlich zur Entwicklung beiträgt, obwohl du das Wissen und die Möglichkeit hast.

                  so einfach ist das nicht. Sicher, einen konkret isolierbaren, m.E. schon von mir hier im Forum erwähnten Bug kann ich auf die Schnelle zum Besten geben:

                  <noscript> test </noscript><script>alert(document.getElementsByTagName('noscript')[0].innerHTML)</script>

                  Und sicher ist Operasoftware der konkrete Code zu gönnen, aber diese einfache Darstellbarkeit ist eher die Ausnahme.

                  Viele Bugs treten bei komplexeren Seiten auf, so kann sich Opera schonmal nicht für einen z-index entscheiden, zugrundeliegen dürfte eine Art von parallel ablaufender Seitenerstellung mit zuwenig Puffern oder fehlende Durchgänge und Hirarchien, welches Element oben landet ist dann eher zufällig.
                  "Vage und Ätherische" ist da nur dass ich zuerst Probleme mit der Reproduzierbarkeit hatte und dies auch im Forum zu dem Thema mitgeteilt hatte als möglichen Bug des Grafiktreibers in Verbindung mit Opera. Reproduzierbar war das Ganze mit verschiedenen Einzelaspekten schliesslich doch, aber das von dir erwähnte Testcase wäre nicht sauber vorhanden gwesen, sondern u.U. die Website oder zukünftige Website eines Kunden die ich aber bei unklaren möglichen Browserbugs schnellstmöglich so angepasst hatte dass ein Testcase nicht mehr benötigt wurde (immerhin hatte ich Operasoftware dazu noch einige demo-Links gemailt).
                  Ich müsste also in solchen Fällen eine nicht mehr aktuelle Variante einer Kundenwebsite extra online stellen, womöglich mit Einwilligung des Kunden, oder die Beispiele arbeitsaufwändig in neutralen Code übertragen.
                  Da wird allerdings für mich deutlich dass Opera die eigenen Produkte nicht hinreichend online oder mit komplexen Websitemodellen testet, und es ist nicht einzusehen warum ich als Freizeitgestaltung oder womöglich noch zu Lasten meiner Kunden eine kommerzielle Firma unterstützen und dazu noch bestätigen soll weiterhin zu wenig Entwickler oder Tester zu beschäftigen.

                  Grüsse

                  Cyx23

  3. Hallo,

    Beispiel 3:
    (aus dem o.g. Thread) vier nacheinander definierte links-floatende Boxen, die dritte Box zusätzlich mit clear:left definiert. Hier setzt Mozilla die vierte Box neben die dritte Box runter, während IE und Opera die vierte Box neben die zweite setzen, das clear also nicht auf diese - nachfolgende - Box anwenden - falsch?

    die Beschreibung stimmt nicht ganz.

    Opera 6 macht es wie Mozilla, und alle IE verhalten sich nach einer eher IE-Bug spezifischen als W3C-konformen Änderung so wie der Mozilla, in der Praxis bleibt dann der Opera 7 als Ausnahme (Zum Test mit Konqueror bin ich noch nicht gekommen).

    Grüsse

    Cyx23

    1. Hi,

      Beispiel 3:

      die Beschreibung stimmt nicht ganz.

      Opera 6 macht es wie Mozilla, und alle IE verhalten sich nach einer eher IE-Bug spezifischen als W3C-konformen Änderung so wie der Mozilla, in der Praxis bleibt dann der Opera 7 als Ausnahme

      ich hatte alle Beispiele mit den drei in Beispiel 1 genannten Browserversionen getestet. Und hiernach ist die Anzeige im Opera 7.11 identisch mit der des IE 6.

      freundliche Grüße
      Ingo

      1. Hallo Ingo,

        Beispiel 3:

        die Beschreibung stimmt nicht ganz.

        Opera 6 macht es wie Mozilla, und alle IE verhalten sich nach einer eher IE-Bug spezifischen als W3C-konformen Änderung so wie der Mozilla, in der Praxis bleibt dann der Opera 7 als Ausnahme

        ich hatte alle Beispiele mit den drei in Beispiel 1 genannten Browserversionen getestet. Und hiernach ist die Anzeige im Opera 7.11 identisch mit der des IE 6.

        sorry wenn ich etwas unpräzise formuliert habe und das "IE-Bug spezifischen" nicht belegt habe, das Beispiel 3 entspricht ja dem von mir früher geposteten Float-Problemen und da dem letzten auf Opera 7 verkürzten Codebeispiel.

        Entwickelt hat sich der Code aus einem für alle Browser funktionierenden Beispiel mit CSS-Weichen usw..

        Hier dürfte auch die Ursache des Fehlers bei Opera zu suchen sein, m.E. haben die bei Opera-Software einfach auf den IE abgeglichen, wenn es kein Flüchtigkeitsfehler war.
        Hier ein Beispiel für den IE 6:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                   "http://www.w3.org/TR/html4/strict.dtd">
        <html>
        <head>
        <style type="text/css">
        div { border:1px solid red; width:200px; height:200px;}
        #eins, #drei{float:left;}
        #zwei, #vier{clear:right}
        </style>
        </head>
        <body>
        <div id="eins"> eins </div>
        <div id="zwei"> zwei </div>
        <div id="drei"> drei </div>
        <div id="vier"> vier </div>
        </body>
        </html>

        Das würde u.U. auch zum Compat-Modus bei Opera 7 passen, W3C konform draufschreiben und wo es doch nötig scheint oder der Unterschied nicht werbewirksam auffällt eher an den IE 6 als an Mozilla angleichen.

        Grüsse

        Cyx23

  4. Hallo Ingo,

    Hierzu habe ich drei Fälle in einer Beispielseite online gestellt: http://www.1ngo.de/web/clear.html.

    Ich hab das ganze mal mit Konqueror 3.1.2 (und damit implizit Safari) getestet, ergebnis war folgendes:

    Beispiel 1:
    Standard Zweispalten-Layout - links floatende Box, rechts nicht-floatende Box mit margin-left auf Abstand.
    IE (6) und Opera (7.11) setzen ein in der rechten Box enthaltenes clearendes Element bis zum unteren Rand des links-floatenden Elements runter.

    Genauso machts auch der Konqueror.

    Beispiel 2:
    ebenfalls Standard Zweispalten-Layout, diesmal floaten beide Boxen, eine links und eine rechts, nebenander. Hier hält keiner der drei Browser einen Abstand ein

    Auch hier verhält sich der Konqueror so, wie alle anderen Browser auch.

    • falsch?

    Ich würde das als richtig empfinden, denn:

    | Since a float is not in the flow [...]
    (http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#floats, 3. Absatz)

    Das float-Objekt ist also nicht im normalen Dokumentfluss, sondern ist eigentständig. Daher trifft

    | The top margin of the generated box is increased enough that the top border edge is below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.

    nicht zu, da mit 'source document' wohl der Dokumentfluss gemeint ist. (IMHO)

    Beispiel 3:
    (aus dem o.g. Thread) vier nacheinander definierte links-floatende Boxen, die dritte Box zusätzlich mit clear:left definiert. Hier setzt Mozilla die vierte Box neben die dritte Box runter,

    Konqueror macht es genauso.

    Somit würde - wenn wir die allgemein verbreitete Interpretation von Beispiel 2 akzeptieren - Konqueror sich im Gegensatz zu allen anderen Browsern vollständig korrekt verhalten, alle anderen würden bei Beispiel 1 oder Beispiel 2 versagen.

    Viele Grüße,
    Christian

    1. Hi,

      kleine Korrektur:

      Somit würde - wenn wir die allgemein verbreitete Interpretation von Beispiel 2 akzeptieren - Konqueror sich im Gegensatz zu allen anderen Browsern vollständig korrekt verhalten, alle anderen würden bei Beispiel 1 oder Beispiel 2 versagen.

      ...alle anderen würden bei Beispiel 1 oder Beispiel 3 versagen.

      Christian

      1. Hallo Christian,

        ...alle anderen würden bei Beispiel 1 oder Beispiel 3 versagen.

        danke für die Infos, ich bin bislang noch nicht zum Test mit Linux gekommen.

        Hinsichtlich meiner Verwendung von Beispiel 3 erstmal beruhigend dass nach einem workaround für die IE( #eins, #drei{float:left;}#zwei, #vier{clear:right} ) nur noch Opera 7 nicht mag und dass die Darstellung von Mozilla wohl richtig ist. Für Opera 7 habe ich bislang nur eine Lösung per JavaScript, die Opera-Anwender sind <cite> sowieso Kummer gewöhnt </cite>, oder hab ich da was verwechselt?

        Grüsse

        Cyx23

    2. Hi,

      Beispiel 2:

      • falsch?

      Ich würde das als richtig empfinden, denn:

      | Since a float is not in the flow [...]
      (http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#floats, 3. Absatz)

      hier stehen zwar klare Anweisungen zur Umsetzung von float, aber das tangiert m.E. die Ausführungen zu clear nicht. Das sieht man ja auch an dem Beispiel, in dem P { clear: left } gesetzt wird und das wohl nicht infrage zu stellen ist: hier wirkt sich das floatende Element durch clear eben _doch_ auf die vertikale Position nachfolgender Elemente aus.

      Das float-Objekt ist also nicht im normalen Dokumentfluss, sondern ist eigentständig. Daher trifft

      | The top margin of the generated box is increased enough that the top border edge is below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.

      nicht zu, da mit 'source document' wohl der Dokumentfluss gemeint ist. (IMHO)

      Da schlage ich doch zur Sicherheit mal im Pons nach:
      "source: [...] Quelle (of trouble, problems etc ;-), Ursache, Ursprung [...]"
      und kann beim besten Willen nichts finden, das diese Annahme rechtfertigen könnte. "source document" bezeichnet m.E. eindeutig den Quelltext und ich kann wirklich keinen Zusammenhang mit dem Dokument_fluss_ hinein interpretieren.

      freundliche Grüße
      Ingo

      1. Hallo Allerseits,

        da ja selbst von den 'Spezialisten' für die Spezifikationen des W3C hier kein Widerspruch kam, möchte ich zusammenfassend die Frage stellen, ob folgende Thesen nun zuteffend sind:

        Zum Beispiel 1)
        Wird die Eigenschaft 'clear' für ein Element innerhalb eines nicht-floatenden Elements definiert, sollte es unter alle früher im Quelltext vorhandenen (entsprechend dem Parameter für 'clear' links oder rechts) floatenden Elemente gesetzt werden. Die Darstellung im IE und Opera 7.xx wäre demnach korrekt.

        Zum Beispiel 2)
        Dasselbe gilt auch, wenn 'clear' für ein Element innerhalb eines floatenden Elements definiert wird. Zwar wird ein floatendes Element (und damit auch sein Inhalt) aus dem Dokumentenfluß genommen, allerdings bezieht sich die Definition von 'clear' ausschließlich auf die Position innerhalb des Quelltextes und läßt keine Ausnahme bezüglich des Dokumentenflusses erkennen. Die Darstellung aller (bisher getesteten) Browser wäre demnach falsch.

        Zum Beispiel 3)
        Die Eigenschaft 'clear' bezieht sich auch auf nachfolgende Elemente und ein nicht im clearenden Element enthaltenes später definiertes Element ist daher ebenfalls davon betroffen. Der Zusatz "(It may be that the element itself has floating descendants; the 'clear' property has no effect on those.)" innerhalb der Spezifikation betrifft dieses Element nicht, da es nicht als "Nachkommen" zu bezeichnen ist. Die Darstellung des Mozilla wäre demnach korrekt.

        Ich möchte nochmals betonen, daß es mir nicht darum geht, Browser-Bugs anzuprangern; vielmehr bin ich daran interessiert zu erfahren, ob die Spezifikationen hier eindeutig und wie sie zu interpretieren sind. Dies unter dem Hintergrund möglicher Korrekturen in späteren Browserversionen, die sich - besonders im Beispiel 2 - fatal auf ein bestehendes Layout auswirken könnten, wenn man hier zu leichtfertig die Eigenschaft 'clear' einsetzt.

        Übrigens ... unabhängig von den Spezifikationen finde ich die Darstellung im Mozilla zumindest praktisch am besten nutzbar, da es m.E. nicht viel Sinn macht, ein Element zwangsweise unter ein anderes zu setzen, auch wenn dieses sich wie in den Beispielen 1 und 2 außerhalb des entsprechenden Anzeigebereiches befindet und nicht mit diesem kollidieren kann. Für die Meisten dürfte die Darstellung des Mozilla daher wohl "logisch" korrekt sein, wie eine Antwort hier (Stichwort "INNERHALB") ja auch zeigt.

        Freundliche Grüße
        Ingo