sucker: first-letter im IE trotz formatierung bleibt

Hi,

ich habe einmal dokumentenweit:

.text first-letter

deklariert. Die Klasse: .text hat das farbattribut color:#fff;
So, nun soll die klasse .text nochmals formatiert werden wenn die Klasse in einer anderen ist:
.imp .text {
color:#000;
}

Im firefox hat nun die komplette schrift die gewünschte farbe schwarz auch der große erste "letter" ist schwarz, nur im IE nicht, da bleibt er weiss! Wieso?
Ich habe dann mal:
.imp .text:first-letter {color:#000;} probiert interessiert dem IE nicht.
Wie dann? Ich möchte das im IE der "first-letter" auch die farbe annimmt.
Hat jemand einen tip?

Danke!

sauger

  1. Hallo,

    ich habe einmal dokumentenweit:

    .text first-letter

    deklariert.

    Was ist das?

    Die Klasse: .text hat das farbattribut color:#fff;
    So, nun soll die klasse .text nochmals formatiert werden wenn die Klasse in einer anderen ist:
    .imp .text {
    color:#000;
    }

    Im firefox hat nun die komplette schrift die gewünschte farbe schwarz auch der große erste "letter" ist schwarz, nur im IE nicht, da bleibt er weiss! Wieso?
    Ich habe dann mal:
    .imp .text:first-letter {color:#000;} probiert interessiert dem IE nicht.
    Wie dann? Ich möchte das im IE der "first-letter" auch die farbe annimmt.
    Hat jemand einen tip?

    Dein erster Satz war etwas irreführend, aber ich nehme an, Du hast so etwas gemacht:

      
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
            "http://www.w3.org/TR/html4/strict.dtd">  
    <html>  
    <head>  
    <title>IE CSS-Selektor Spezifitätsproblem</title>  
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
    <style type="text/css">  
    .text { color:#00F; }  
    .text:first-letter { font-size:2em; }  
    .imp .text { color:#F00; }  
    </style>  
    </head>  
    <body>  
    <p class="text">Test</p>  
      
    <div class="imp">  
    <p class="text">Test</p>  
    </div>  
    </body>  
    </html>  
    
    

    In der Tat scheint hier der IE ein Problem mit der CSS-Selektor Spezifität zu haben. Obwohl .imp .text viel spezifischer ist als .text überschreibt die color Definition nicht die von .text, jedenfalls nicht für .text:first-letter. Auch eine explizite Definition für .imp .text:first-letter greift nicht.

    Irgendein Bug bei der Spezifitätsberechnuing liegt hier vor. Macht man nämlich die allgemeine Definition für .text spezifischer, dann funktioniert es plötzlich:

      
    body .text { color:#00F; }  
    .text:first-letter { font-size:2em; }  
    .imp .text { color:#F00; }  
    
    

    Folgendes hilft auch:

      
    * .text { color:#00F; }  
    .text:first-letter { font-size:2em; }  
    .imp .text { color:#F00; }  
    
    

    viele Grüße

    Axel

    1. Hallo Axel,

      ok danke! Das hat mir sehr geholfen!