Existe-t-il un moyen avec CSS de cibler toutes les entrées en fonction de leur type? J'ai une classe désactivée que j'utilise sur divers éléments de formulaire désactivés, et je définis la couleur d'arrière-plan des zones de texte, mais je ne veux pas que mes cases à cocher obtiennent cette couleur.
Je sais que je peux le faire avec des classes séparées, mais je préfère utiliser CSS si possible. Je suis sûr que je peux définir cela en javascript, mais encore une fois à la recherche de CSS.
Je cible IE7 +. Donc je ne pense pas que je puisse utiliser CSS3.
Éditer
Avec CSS3, je pourrais faire quelque chose comme?
INPUT[type='text']:disabled
ce serait encore mieux de me débarrasser complètement de ma classe ...
Éditer
OK, merci pour le coup de main! Voici donc un sélecteur qui modifie toutes les zones de texte et zones qui ont été désactivées sans nécessiter de définir aucune classe, lorsque j'ai commencé cette question, je n'ai jamais pensé que c'était possible ...
INPUT[disabled][type='text'], TEXTAREA[disabled]
{
background-color: Silver;
}
Cela fonctionne dans IE7
la source
Réponses:
Oui. IE7 + prend en charge les sélecteurs d'attributs:
Entrée d'élément avec un type d'attribut qui contient une valeur égale à, commence par, contient ou se termine par une certaine valeur.
Les autres sélecteurs de sécurité (IE7 +) sont:
p > span { font-weight: bold; }
span ~ span { color: blue; }
Ce
<p><span/><span/></p>
qui vous donnerait effectivement:Lectures complémentaires: Compatibilité CSS du navigateur sur quirksmode.com
Je suis surpris que tout le monde pense que cela ne peut pas être fait. Les sélecteurs d'attributs CSS existent déjà depuis un certain temps. Je suppose qu'il est temps de nettoyer nos fichiers .css.
la source
Malheureusement , les autres affiches sont corrects que vous êtes... en fait corrigé par KRON, vous êtes ok avec votre IE7 et un doc strict, mais la plupart d' entre nous avec les exigences IE6 sont réduites à des références JS ou de classe pour cela, mais il est une propriété CSS2, juste une sans prise en charge suffisante des navigateurs IE ^ h ^ h.Par souci d'exhaustivité, le sélecteur de type est - similaire à xpath - de la forme
[attribute=value]
mais de nombreuses variantes intéressantes existent. Il sera assez puissant lorsqu'il sera disponible, bonne chose à garder en tête pour IE8.référence w3
référence de la prise en charge du navigateur
la source
Vous pouvez le faire avec jQuery. À l'aide de leurs sélecteurs, vous pouvez sélectionner par attributs, tels que le type. Cependant, cela nécessite que vos utilisateurs aient activé Javascript et un fichier supplémentaire à télécharger, mais si cela fonctionne ...
la source
Désolé, la réponse courte est non. CSS (2.1) ne marquera que les éléments d'un DOM, pas leurs attributs. Vous devrez appliquer une classe spécifique à chaque entrée.
Dommage, je sais, car ce serait incroyablement utile.
Je sais que vous avez dit que vous préférez CSS à JavaScript, mais vous devriez toujours envisager d'utiliser jQuery. Il fournit une manière très propre et élégante d'ajouter des styles aux éléments DOM basés sur des attributs.
la source