Möglicher Firefox CSS-Pfusch: text-align wird ignoriert.

  • Hallo Leute,

    ich habe heute eine merkwürdige Entdeckung gemacht: bei einem absolut-positioniertem DIV ignoriert der Firefox die text-align:right -Anweisung, wenn die Breite nicht angegeben ist.

    Ich habe schon einige knifflige CSS-Sachen hinter mir, aber noch NIE waren Opera 7 und IE einer Meinung, währen der Fuchs einen Seitensprung wagte. Daher verdächtige ich hier den Fuchs des Pfusches.

    Kommt mir bitte, wie bei anderen User nicht mir Aussagen, das der FireFox recht hat, weil er standardkonform ist und blabla. Größtenteils stimmt das. Aber die css-Direktive text-align ist laut standard für ALLE BLOCK Elemente anwendbar, unabhängig davon, wie sie positioniert werden.

    Ich habe festgestellt, dass der FireFox den Fehler nur bei absoluten Positionierungen macht. Der logischste Schluss hieraus wäre, das FF meint, eine Layer sein kein Blockelement. Dies halte ich für falsch. Erstens, weil das Beispieldokument einwandfrei nach HTML-strict validiert und zweitens, weil der DOM-Inspector von FF im computed style sehr wohl Blockelement Eigenschaften für das DIV ausweist.

    Kann mir jemand das nun vernünftig erklären, oder pfuscht er wirklich?

    Grüße,
    aron

    BSPCODE:

  • Zitat von sosum

    Daher verdächtige ich hier den Fuchs des Pfusches. Kann mir jemand das nun vernünftig erklären, oder pfuscht er wirklich?


    Nein, nein. FF zeigt dir "deinen Pfusch" richtig an.
    Beweis:
    Tausche mal nachfolgenden Code bei dir aus ( lasss das CSS so wie es ist) und schau dir das Ergebnis in den 3 Browsern an - Welche Einigkeit zwischen IE und Opera!? Nur der Fox zeigt tatsächlich, was du im Code vorgibst.

    Da gibts noch was für dich zu tun, aber du hast ja schon einige knifflige CSS-Sachen hinter dir.

  • wobre
    Hi,

    hm, ich habe jetzt deinen Code eingefügt und kann keinen Unterschied feststellen. Hier:
    Opera 7.54: :P
    [Blockierte Grafik: http://jugendkultur.apolyton.de/gfx/ta_op.jpg]
    in gross: http://jugendkultur.apolyton.de/gfx/ta_op.gif

    Internet Explorer 6 :P
    [Blockierte Grafik: http://jugendkultur.apolyton.de/gfx/ta_ie6.jpg]
    in gross: http://jugendkultur.apolyton.de/gfx/ta_ie6.gif

    FireFox 1.0 :shock:
    [Blockierte Grafik: http://jugendkultur.apolyton.de/gfx/ta_ff.jpg]
    in gross: http://jugendkultur.apolyton.de/gfx/ta_ff.gif

    #pfusch hat Textausrichtung: rechts
    #analogie hat Textausrichtung: links
    p hat Textausrichtung rechts

    Da das P-Tag innerhalb des DIV ist, gilt auch "p", align:right. Deswegen überlappen sich die Bereiche. Ich finde das richtig, da obwohl eine ID-Selektor prinzipiell eine höhere CSS-Priorität hat, als ein Tag-Selektor, so ist dieser ein Kindelement dessen und müsste trotzdem gelten. So stehts auch im FF computed Style.

    Jetzt wird interessant: ersetzte mal bitte den betroffenen Code:


    Ich habe nur hingeschrieben, wie es definiert ist. Da ist doch seltsam, oder? :shock:
    Okay, als nächstes entwirren wir ein bisschen und streichen bei dem P-Selektor das text-align. Dort steht also:

    Code
    p {	margin:0;padding:0;padding-right:4px;}


    Und man sieht das, was ich beklage:
    [Blockierte Grafik: http://jugendkultur.apolyton.de/gfx/ta_ff2.jpg]
    in gross: http://jugendkultur.apolyton.de/gfx/ta_ff2.gif
    Wo ist jetzt das "text-align:right" von #pfusch :?:
    Gertrud
    Oh man, wie recht du hast. Desweiteren glaube ich auch nicht, dass der W3C Validierer CSS-Code überhaupt prüft. :lol:

    Kann man eigentlich die Bilder hier in BB kleiner machen? (Ohne das ich das Bild selbst kleiner mache...)

  • Hi sosum,
    hast du beim IE und Orpera nicht gesehen, das die beiden letzten DIV's aufeinander liegen. Untere Box - 1. Zeile.

    Sag mal, wie oft soll der der sich immer wiederholende Text auftauchen? drei mal oder nur zweimal?
    Und er soll wenn ich dich richtig versteh immer rechts ausgerichtet sein!
    Mich interessiert das Thema sehr, denn trotz den Fehlern scheint hier etwas nicht zu passen.

  • sosum
    Vielleicht hilft dir dieser Code weiter:

  • Hallo,

    erstmal den Code von Ballast befreit:


    Dann mit der Breite gespielt (die Bilder sind jeweils von links nach rechts: Internet Explorer, Opera, Firefox).
    ohne width-Angabe:
    [Blockierte Grafik: http://www.hallofreun.de/temp/IEohne.png] [Blockierte Grafik: http://www.hallofreun.de/temp/OPohne.png] [Blockierte Grafik: http://www.hallofreun.de/temp/FXohne.png]
    IE macht bekanntlich divs gerne so breit, dass alles reinpasst. Opera macht ihm das nach. Fx nimmt ohne Breitenangabe anscheinend die Breite null, wobei links- oder rechtsbündig keinen Sinn mehr ergeben. Den rechten Rahmen malt er jedoch unter dem Rand der ersten div.

    Mit width:3px
    [Blockierte Grafik: http://www.hallofreun.de/temp/IE3px.png] [Blockierte Grafik: http://www.hallofreun.de/temp/OP3px.png] [Blockierte Grafik: http://www.hallofreun.de/temp/FX3px.png]
    IE sieht bei 3px Breite auch nicht mehr rechtsbündig aus. Endlich ein Unterschied zwischen Opera und IE.


    Mit width:150px
    [Blockierte Grafik: http://www.hallofreun.de/temp/IE150px.png] [Blockierte Grafik: http://www.hallofreun.de/temp/OP150px.png] [Blockierte Grafik: http://www.hallofreun.de/temp/FX150px.png]
    Jetzt ist für alles genug Platz.
    Fazit: divs, vor allem absolute, soll man breit genug anlegen.
    edit: Mittlerweile bin ich der Meinung, dass auch Fx ohne width-Angabe die div so breit machen sollte wie den Text.
    edit2: In Bugzilla ist ein ganz ähnlicher Fehler gemeldet

    Martin

    HalloFreun.de, Kanotix, HanseNet(AliceDSL), (X11; U; Linux i686; de-AT; rv:1.8.1.12) Gecko/20080129 (Debian-2.0.0.12-0etch1)