395 Stimmen

css-Selektor für die Übereinstimmung mit einem Element ohne Attribut x

Ich arbeite an einer CSS-Datei und habe das Bedürfnis, Texteingabefelder zu gestalten, stoße aber auf Probleme. Ich brauche eine einfache Erklärung, die für alle diese Elemente gilt:

<input />
<input type='text' />
<input type='password' />

... passt aber nicht zu diesen:

<input type='submit' />
<input type='button' />
<input type='image' />
<input type='file' />
<input type='checkbox' />
<input type='radio' />
<input type='reset' />

Ich würde gerne Folgendes tun:

input[!type], input[type='text'], input[type='password'] {
   /* styles here */
}

In der obigen CSS-Datei ist der erste Selektor input[!type] . Was ich damit meine, ist, dass ich alle Eingabefelder auswählen möchte, in denen das Attribut "type" nicht angegeben ist (weil es standardmäßig auf "text" eingestellt ist, aber input[type='text'] nicht übereinstimmt). Leider gibt es keinen solchen Selektor in der CSS3-Spezifikation, den ich finden konnte.

Kennt jemand eine Möglichkeit, dies zu erreichen?

639voto

eveliotc Punkte 12393

:not Selektor:

input:not([type]), input[type='text'], input[type='password'] {
    /* style here */
}

Unterstützung: in Internet Explorer 9 und höher

31voto

Tim Santeford Punkte 25563

Für eine eher browserübergreifende Lösung könnten Sie tous Eingaben, wie Sie die nicht getippt, Text und Passwort dann eine andere Art der überschreibt, dass Stil für Radios, Checkboxen, etc.

input { border:solid 1px red; }

input[type=radio], 
input[type=checkbox], 
input[type=submit], 
input[type=reset], 
input[type=file] 
      { border:none; }

- Oder -

könnte der Teil Ihres Codes, der die nicht typisierten Eingaben erzeugt, ihnen eine Klasse wie .no-type oder einfach gar nicht ausgeben? Zusätzlich könnte diese Art der Auswahl mit jQuery durchgeführt werden.

11voto

smets.kevin Punkte 1530

Ich wollte nur hinzufügen, dass Sie den :not-Selektor in oldIE mit selectivizr verwenden können: http://selectivizr.com/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X