Zuweisung zweier CSS Properties
Christian S.
- css
Hi,
folgender Snippet:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
input[type=text]
{
background-color: #ffcc00;
}
.test
{
background-color: #ff0000;
}
</style>
</head>
<body>
<form>
<input type="text" onfocus="this.className='test';" onblur="this.className='';" />
</form>
</body>
</html>
ich möchte, dass alle Textboxen einen bestimmten Style haben, dass sage ich in input[type=text].
Bei einem Event, möchte ich die Klasse wechseln (this.className='').
Klappt auch. Nur die BGColor wird nicht neu gesetzt.
also ersterer Selektor scheint stärker zu binden, als der zweite...?
kann man das Problem lösen?
input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.
Gruß
Christian
Hi,
input[type=text]
.test
Klappt auch. Nur die BGColor wird nicht neu gesetzt.
natürlich nicht. Sie wird immer noch vom Selektor mit der höchsten Spezifität bestimmt, also von input[type=text] (011) statt .test (010).
also ersterer Selektor scheint stärker zu binden, als der zweite...?
kann man das Problem lösen?
Mach den zweiten Selektor spezifischer.
input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.
Wieso, kann er input[type=text]:focus im Gegensatz zu input[type=text] plötzlich?
Cheatah
Hi,
Mach den zweiten Selektor spezifischer.
und zwar wie??
Habe jetzt ein !important hinter die bgcolor der klasse gesetzt, dann gehts auch. oder geht das auch hinter die gesamte klasse?
input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.
Wieso, kann er input[type=text]:focus im Gegensatz zu input[type=text] plötzlich?
:focus kann er nicht, daher kann ich es ja nicht verwenden. (da die style änderung idr beim focus kommt).
also muss in dem focus fall JS her.
Es ging nur darum, nicht für jede Textbox eine Klasse angeben zu müssen.
Gruß!
Hi,
Mach den zweiten Selektor spezifischer.
und zwar wie??
indem er mindestens einen Element- und einen Attributselektor enthält, oder mindestens einen ID-Selektor.
Habe jetzt ein !important hinter die bgcolor der klasse gesetzt,
Der Regel. Sowas wie Klassen gibt es in CSS nicht.
dann gehts auch.
Es heißt "!important", nicht "!override". Deine Anwendung ist nach unseren aktuellen Kenntnissen falsch.
oder geht das auch hinter die gesamte klasse?
Regel. Nein.
input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.
Wieso, kann er input[type=text]:focus im Gegensatz zu input[type=text] plötzlich?
:focus kann er nicht, daher kann ich es ja nicht verwenden.
[type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?
Cheatah
Hi,
[type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?
update Cheatah set knowledge = concat(knowledge, "IE kennt [type=text] (nur im Nicht-Quirks-Mode und erst ab Version 7.x)");
cu,
Andreas
Grundlage für Zitat #754.
Hi,
Es heißt "!important", nicht "!override". Deine Anwendung ist nach unseren aktuellen Kenntnissen falsch.
wie kommst du auf !override? davon hab ich nie geredet, und das ist mir auch völlig unbekannt.
[type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?
IE 7 schon.
Gruß!
Hi,
Es heißt "!important", nicht "!override". Deine Anwendung ist nach unseren aktuellen Kenntnissen falsch.
wie kommst du auf !override? davon hab ich nie geredet, und das ist mir auch völlig unbekannt.
Der Punkt ist, dass du !important ohne Not dazu "missbrauchst", um eine andere Zuweisung zu "überschreiben".
[type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?
IE 7 schon.
Tolles Argument. Und warum verwendest du völlig unnötigerweise einen Selektor, den die IEs < 7 nicht verstehen?
Es reicht nicht, einfach mal eben CSS für seine Site zu verwenden. Man muss sich auch mit der Materie auseinandersetzen und das Ganze verstehen. Deine Vorgehensweise und deine Postings drängen den Verdacht auf, dass du beides noch nicht in ausreichendem Maße getan hast.
Gruß Gunther
Hi,
Tolles Argument. Und warum verwendest du völlig unnötigerweise einen Selektor, den die IEs < 7 nicht verstehen?
Weil ich nicht JEDER Textbox eine Klasse geben will (=> weniger Aufwand).
Es reicht nicht, einfach mal eben CSS für seine Site zu verwenden. Man muss sich auch mit der Materie auseinandersetzen und das Ganze verstehen. Deine Vorgehensweise und deine Postings drängen den Verdacht auf, dass du beides noch nicht in ausreichendem Maße getan hast.
habe das mit der Prio nun halbwegs gerafft.
also
einfach
input[type=text].Klasse statt !important.
Ich würde nicht sagen, dass ich die Materie nicht verstanden habe, nur weil ich die Selektoren noch nicht ganz verstanden hatte.
IE 7 Unterstützung reicht in meinem Fall aus. (keine öffentliche seite die barrierefrei und so sein muss).
Gruß!
Aloha!
:focus kann er nicht, daher kann ich es ja nicht verwenden. (da die style änderung idr beim focus kommt).
also muss in dem focus fall JS her.
Das geht auch ohne JS: Gib dem IE :active - das setzt er fälschlicherweise so um, wie :focus gemeint ist.
Viele Grüße vom Længlich
@Cheatah
Meld Dich mal bei uns, dringend.
Hi,
in Ergänzung zu Cheatas Antwort hier noch ein Link bezüglich der Spezifität.
ich möchte, dass alle Textboxen einen bestimmten Style haben, dass sage ich in input[type=text].
Man kann dafür auch durchaus eine Klasse verwenden, dann verstehen es auch die IEs.
Gruß Gunther
Hallo alle!
Frage steht eigentlich im Topic...
bezüglich der Spezifität.
Zu mal im Deutschen die Verwechslung mit einem evtl. Wildweststädtchen Specifi City gar nicht gegeben ist ;)
Viele Grüße aus Frankfurt/Main,
Patrick