Gibt es eine Möglichkeit mit CSS, alle Eingaben basierend auf ihrem Typ zu zielen? Ich habe eine deaktivierte Klasse, die ich für verschiedene deaktivierte Formularelemente verwende, und ich lege die Hintergrundfarbe für Textfelder fest, aber ich möchte nicht, dass meine Kontrollkästchen diese Farbe erhalten.
Ich weiß, dass ich dies mit separaten Klassen tun kann, aber ich würde wenn möglich lieber CSS verwenden. Ich bin sicher, ich kann dies in Javascript einstellen, suche aber wieder nach CSS.
Ich ziele auf IE7 +. Ich glaube also nicht, dass ich CSS3 verwenden kann.
Bearbeiten
Mit CSS3 könnte ich so etwas machen?
INPUT[type='text']:disabled
das wäre noch besser, meine Klasse insgesamt loszuwerden ...
Bearbeiten
Ok danke für die Hilfe! Hier ist also ein Selektor, der alle Textfelder und Bereiche ändert, die deaktiviert wurden, ohne dass Klassen festgelegt werden müssen. Als ich diese Frage startete, hätte ich nie gedacht, dass dies möglich ist ...
INPUT[disabled][type='text'], TEXTAREA[disabled]
{
background-color: Silver;
}
Dies funktioniert in IE7
quelle
Antworten:
Ja. IE7 + unterstützt Attributselektoren:
Elementeingabe mit Attributtyp, der einen Wert enthält, der gleich ist, mit einem bestimmten Wert beginnt, diesen enthält oder mit diesem endet.
Andere sichere (IE7 +) Selektoren sind:
p > span { font-weight: bold; }
span ~ span { color: blue; }
Was für
<p><span/><span/></p>
würde Ihnen effektiv geben:Weiterführende Literatur: Browser-CSS-Kompatibilität auf quirksmode.com
Ich bin überrascht, dass alle anderen denken, dass dies nicht möglich ist. CSS-Attributselektoren sind bereits seit einiger Zeit hier. Ich denke, es ist Zeit, unsere CSS-Dateien zu bereinigen.
quelle
Leider sind die anderen Poster richtig, dass Sie... tatsächlich wie von kRON korrigiert, sind Sie mit Ihrem IE7 und einem strengen Dokument in Ordnung, aber die meisten von uns mit IE6-Anforderungen sind dafür auf JS oder Klassenreferenzen reduziert, aber das ist es Eine CSS2-Eigenschaft, nur eine ohne ausreichende Unterstützung durch IE ^ h ^ h-Browser.Der Vollständigkeit halber hat der Typselektor - ähnlich wie xpath - die Form,
[attribute=value]
aber es gibt viele interessante Varianten. Es wird ziemlich mächtig sein, wenn es verfügbar ist. Gut, dass Sie IE8 im Kopf behalten.w3 Referenz
Browser-Support-Referenz
quelle
Sie können dies mit jQuery tun. Mit ihren Selektoren können Sie nach Attributen wie Typ auswählen. Dies setzt jedoch voraus, dass Ihre Benutzer Javascript aktiviert haben und eine zusätzliche Datei zum Herunterladen haben, aber wenn es funktioniert ...
quelle
Entschuldigung, die kurze Antwort lautet nein. CSS (2.1) markiert nur die Elemente eines DOM, nicht deren Attribute. Sie müssten auf jede Eingabe eine bestimmte Klasse anwenden.
Schade, ich weiß, denn das wäre unglaublich nützlich.
Ich weiß, dass Sie gesagt haben, Sie würden CSS gegenüber JavaScript bevorzugen, aber Sie sollten trotzdem in Betracht ziehen, jQuery zu verwenden. Es bietet eine sehr saubere und elegante Möglichkeit, DOM-Elementen basierend auf Attributen Stile hinzuzufügen.
quelle