first-letter im IE trotz formatierung bleibt
sucker
- css
0 Axel Richter0 sucker
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
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
Hallo Axel,
ok danke! Das hat mir sehr geholfen!