CSS-Selektor für deaktivierten Eingabetyp = "Senden"

76

Gibt es einen CSS-Selektor für deaktivierte input type="submit"oder "button"?

Soll ich nur verwenden input[type="submit"][disabled]?

Funktioniert das in IE6?

Francisc
quelle
4
:disabledkann besser sein, in CSS3. Der IE wird jedoch auch nicht unterstützt, sodass Sie eine Sicherungsklasse benötigen.
Bobince
Danke, guter Punkt, aber ich habe vor, mich vorerst von CSS3 fernzuhalten.
Francisc
13
Entwickler müssen wirklich aufhören, IE6 zu unterstützen. Und Websitebesitzer / -manager müssen wirklich aufhören, Entwickler zu bitten, dies zu unterstützen. Komm schon Leute - IE9 kommt jetzt raus!
Spudley
1
Nun, wenn man bedenkt, dass 24% der Benutzer meines Clients aus dem IE6 stammen, kann ich dies vorerst leider nicht ignorieren. IE9 ist großartig, aber es funktioniert zum Beispiel nicht unter Windows XP.
Francisc
2
24% sind heutzutage überdurchschnittlich für IE6, aber ja, wenn Sie diese Art von Statistik haben, müssen Sie damit umgehen. Das bedeutet jedoch nicht, dass Sie dafür sorgen müssen, dass alles perfekt aussieht, solange die Funktionalität funktioniert. Für das, was es wert ist, sehen wir ungefähr 17% und wir haben uns entschieden, die Unterstützung dafür bei unserer bevorstehenden Site-Überarbeitung aktiv einzustellen.
Spudley

Antworten:

114

Funktioniert das in IE6?

Nein, IE6 unterstützt überhaupt keine Attributselektoren , vgl. CSS-Kompatibilität und Internet Explorer .

Sie können feststellen , wie Umgehung: IE6 nicht unterstützt CSS „Attribut“ Selektoren lohnt sich die Lektüre.


BEARBEITEN
Wenn Sie IE6 ignorieren möchten, können Sie Folgendes tun (CSS2.1):

input[type=submit][disabled=disabled],
button[disabled=disabled] {
    ...
}

CSS3 (IE9 +):

input[type=submit]:disabled,
button:disabled {
    ...
}

Sie können[disabled=disabled] (Attributwert) durch [disabled](Attributpräsenz) ersetzen .

Jensgramm
quelle
OK danke. Aber wenn ich IE6 ignorieren würde, wie würde das erreicht werden? Wäre die Eingabe [type = "button" [disabled] Standard?
Francisc
Nochmals vielen Dank für den ersten Link, CSS-Kompatibilität und Internet Explorer - EXCELLENT ARTICLE, sofortiges Lesezeichen.
Francisc
1
@SuperUberDuper Der attributbasierte Ansatz funktioniert in IE8 (weder IE6 noch IE9 +). Sowohl IE7 als auch IE8 unterstützen einige CSS2.1- und CSS3-Selektoren, wobei Attributwert / Präsenz einer davon ist.
Jensgramm
2

Wie von jensgram gesagt, unterstützt IE6 die Attributauswahl nicht. Sie können eine Klasse = "disabled" hinzufügen, um die deaktivierten Eingaben auszuwählen, damit dies in IE6 funktioniert.

Tim
quelle
0

Ich habe die @ jensgram-Lösung verwendet, um ein Div auszublenden, das eine deaktivierte Eingabe enthält. Also verstecke ich das gesamte übergeordnete Element der Eingabe.

Hier ist der Code:

div:has(>input[disabled=disabled]) {
    display: none;
}

Vielleicht könnte es einigen von Ihnen helfen.

Meloman
quelle