MudGuard: Firefox - seltsames Selector-Problem

Hi,

gegeben ist folgender (nicht von mir zu beeinflussender) HTML-Quelltext-Ausschnitt:

  
<td width="100%" valign="top" class="post21">  
  <div class="postcolor"><span style='color:yellow'>Frage: </span>bla</div>  
</td>  

Da ich öfter auf der betroffenen Seite lese, wollte ich die gelben Teile in lesefreundlicheren Farben gestalten.

Also die userContent.css vom Firefox (1.5.0.6) editiert mit

  
@-moz-document url-prefix(http://www.example.org/)  
{  
  .post21 .postcolor span[style='color:yellow'] { color:black !important; background-color:white !important; }  
}  

Den style-Attribut-Selektor hatte ich mit reingenommen, da manchmal noch weitere spans vor/nach dem zu ändernden span sind.

Firefox neu gestartet, keine Änderung.

Den style-Attribut-Selektor rausgenommen, Firefox neu gestartet, funktioniert (betrifft aber auch die anderen spans ...).

Noch etwas experimentiert:

  
@-moz-document url-prefix(http://www.example.org/)  
{  
  .post21 .postcolor span { color:black !important; background-color:white !important; }  
  .post21 .postcolor span[style*='yellow'] { color:fuchsia !important; background-color:yellow !important; }  
  .post21 .postcolor span[style*='color:yellow'] { color:red !important; background-color:gold !important; }  
  .post21 .postcolor span[style='color:yellow'] { color:blue !important; background-color:silver !important; }  
}  

Zu meinem Erstaunen wurde nicht wie erwartet blau auf silber benutzt, sondern rosa (fuchsia) auf gelb.

Der [attr*='text']-Selektor funktioniert also.
Aber warum geht dann der folgende Selektor (rot auf gold) nicht?
Ist doch eigentlich dasselbe, nur daß der zu suchende Text etwas länger ist ...

Ich hab dann noch weiter rumexperimentiert. Auch der [attr='text'] Selektor funktioniert grundsätzlich im Firefox.

Firefox hat wohl ein Problem mit dem Doppelpunkt im style-Attribut-Selektor.
Aber nicht immer. Hier für's SELFHTML Forum hab ich z.B:
a[href^="http://forum.de.selfhtml.org/my/?mv="],
a[href^="http://forum.de.selfhtml.org/my/?a=d"] { margin-left:0.6em; }
im Einsatz, um zwischen die Icons zum Ausblenden/Gelesen markieren etwas Abstand zu bringen.

Ist das Phänomen bekannt? Gibt es irgendeine logische Erklärung?

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  1. Hi,

    Firefox hat wohl ein Problem mit dem Doppelpunkt im style-Attribut-Selektor.

    ich unterstelle, dass Firefox das style-Attribut interpretiert: Es wird bidirektional mit der style-Collection verknüpft. Starte den DOM-Inspector, dort siehst Du, was Firefox aus dem Attribut gemacht hat.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Firefox hat wohl ein Problem mit dem Doppelpunkt im style-Attribut-Selektor.
      ich unterstelle, dass Firefox das style-Attribut interpretiert: Es wird bidirektional mit der style-Collection verknüpft. Starte den DOM-Inspector, dort siehst Du, was Firefox aus dem Attribut gemacht hat.

      daß er das style="color:yellow" interpretiert, weiß ich.
      Ich meinte mit "style-Attribut-Selektor NICHT das style-Attribut, sondern span[style='color:yellow'], was er nicht oder falsch interpretiert, wohingegen er span[style*='color'] und span[style*='yellow'] und auch span[style*='color'][style*='yellow'] erwartungsgemäß interpretiert.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hi,

        Ich meinte mit "style-Attribut-Selektor NICHT das style-Attribut, sondern span[style='color:yellow'], was er nicht oder falsch interpretiert, wohingegen er span[style*='color'] und span[style*='yellow'] und auch span[style*='color'][style*='yellow'] erwartungsgemäß interpretiert.

        er kann [style='color:yellow'] trotz richtiger Auswertung nicht mit einem style-Attribut assoziieren, welches dank seiner Interpretation nicht "color:yellow" lautet, sondern z.B. "color: yellow;". Dieser Wert erklärt übrigens alle Deine Beobachtungen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          er kann [style='color:yellow'] trotz richtiger Auswertung nicht mit einem style-Attribut assoziieren, welches dank seiner Interpretation nicht "color:yellow" lautet, sondern z.B. "color: yellow;". Dieser Wert erklärt übrigens alle Deine Beobachtungen.

          Arrgh. Die kleinen Unterschiede hab ich gar nicht bemerkt.
          Mit [style='color: yellow;'] funktionierts.

          Warum macht der denn sowas? Wenn der das für die interne Auswertung der Deklarationen macht, dürfte das m.E. eigentlich keine Auswirkung auf andere Zugriffe auf das Attribut haben.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hello out there!

    Firefox hat wohl ein Problem mit dem Doppelpunkt im style-Attribut-Selektor.

    Ich glaub nicht, dass es am Doppelpunkt liegt.

    HTML: <p>foo</p>

    CSS:  ~~~css p {
            background-color: yellow;
            color;
          }

      
    Die ungültige Deklaration wird ignoriert, die Hintergrundfarbe gesetzt.  
      
      
    HTML: `<p style="color">foo</p>`{:.language-html}  
      
    CSS:  ~~~css
    p {  
            background-color: yellow;  
          }
    

    Selbes Ergebnis.

    HTML: <p style="color">foo</p>

    CSS:  ~~~css p[style] {
            background-color: yellow;
          }

      
    Immer noch dasselbe Ergebnis.  
      
      
    HTML: `<p style="color">foo</p>`{:.language-html}  
      
    CSS:  ~~~css
    p[style=color] {  
            background-color: yellow;  
          }
    

    Keine Hintergrundfarbe mehr. Schon seltsam.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)