Überschreiben von CSS Definition mit externem Code
hans-1382931
- css
0 Gunnar Bittersmann
0 MudGuard
0 LX
hallo community!
ich möchte gerne in MySpace einen DIV-Bereich umformattieren, sprich den Hintergrund schwarz machen. Der Quellcode auf der Seite ist "<div id="profile_bandschedule">..hierdiebetroffenenelemente..</div>".
mein css code sieht wie folgt aus:
div[id="profile_bandschedule"]
{
background-color:#000000 !important;
}
div:profile_bandschedule
{
background-color:#000000 !important;
}
.profile_bandschedule
{
background-color:#000000 !important;
}
#profile_bandschedule
{
background-color:#000000 !important;
}
In keinem der Fälle wie ich sie im CSS definiert habe funktioniert die Formattierung im Internet Explorer. Safari, Firefox und Opera zeigen die DIV mit einem schwarzen Hintergrund an, nur der *sorry* bescheuerte IE nicht...
Hat jemand eine Idee?
Gruß,
Hans
@@hans-1382931:
nuqneH
div[id="profile_bandschedule"]
div:profile_bandschedule
.profile_bandschedule
#profile_bandschedule
Von diesen vier Selektoren pssen genau zwei auf '<div id="profile_bandschedule">
'. Einen davon kennen IE < 7 nicht.
Ich würde dir empfehlen, doch mal nachzulesen statt wild rumzuprobieren: [CSS2 §5, http://de.selfhtml.org/css/formate/zentrale.htm@title=SELFHTML] und natürlich [ZITAT231]
Hat jemand eine Idee?
Ja: Lass mal deine Seite sehen!
Qapla'
Hi,
div[id="profile_bandschedule"]
div:profile_bandschedule
.profile_bandschedule
#profile_bandscheduleVon diesen vier Selektoren
das sind doch nur 3 - das zweite ist doch höchstens als Versuch eines Selectors zu werten - oder hat das w3c jetzt tatsächlich eine Pseudoklasse profile_bandschedule eingeführt?
cu,
Andreas
Du solltest a) Dein CSS immer so einfach wie möglich halten, bei den IDs CamelCase verwenden (keine Umlaute und Sonderzeichen, obwohl "-" meistens in Ordnung geht) und !important wirklich nur in sochen Ausnahmesituationen einsetzen, wenn absolut kein Selektor mit höherer Spezifität möglich ist.
Des weiteren sollte der Selektor das selektieren, was gestyled werden soll: während #xy ein beliebiges Node mit der auf der ganzen Seite nur einmal vorkommenden ID "xy" selektiert wird, wäre div#xy bereits eine Einschränkung auf div-Nodes. Nutze alle Einschränkungen, die sinnvoll sind - aber auch nur diese. Wenn es keine unterschiedlichen Node-Typen mit der gleichen ID gibt, brauchst Du dieses auch nicht im Selektor deklarieren. Auf diese Weise läßt man sich zudem Raum für das Überschreiben von Attributen durch Selektoren mit höherer Spezifität.
Außerdem sollte ein Selektor pro Element für die meisten Fälle ausreichen. Mehrere Selektoren sind nur dann notwendig, wenn entweder bei unterschiedlichen Parent-Strukturen anders formatiert werden soll oder aber browserspezifische Änderungen einfließen sollen (sogenannte CSS-Hacks).
Gruß, LX