Sélecteur CSS pour les champs de saisie de texte?


Réponses:


674
input[type=text]

ou, pour limiter les entrées de texte à l'intérieur des formulaires

form input[type=text]

ou, pour restreindre davantage à une certaine forme, en supposant qu'il a id myForm

#myForm input[type=text]

Remarque: cela n'est pas pris en charge par IE6, donc si vous souhaitez développer pour IE6, utilisez IE7.js (comme l'a suggéré Yi Jiang) ou commencez à ajouter des classes à toutes vos entrées de texte.

Référence: http://www.w3.org/TR/CSS2/selector.html#attribute-selectors


Puisqu'il est spécifié que les valeurs d'attribut par défaut ne peuvent pas toujours être sélectionnables avec des sélecteurs d'attribut, on pourrait essayer de couvrir d'autres cas de balisage pour lesquels des entrées de texte sont rendues:

input:not([type]), // type attribute not present in markup
input[type=""], // type attribute present, but empty
input[type=text] // type is explicitly defined as 'text'

Cela laisse toujours le cas lorsque le type est défini, mais a une valeur non valide et qui revient toujours à type = "text". Pour couvrir cela, nous pourrions utiliser sélectionner toutes les entrées qui ne sont pas l'un des autres types connus

input:not([type=button]):not([type=password]):not([type=submit])...

Mais ce sélecteur serait assez ridicule et la liste des types possibles s'allonge avec de nouvelles fonctionnalités ajoutées au HTML.

Remarque: la :notpseudo-classe n'est prise en charge qu'à partir d'IE9.


41
+1 pour avoir cité la norme actuelle plutôt qu'un site Web de didacticiel
Šime Vidas

7
Je vous remercie. J'ai remarqué que les gens citent la première chose qui apparaît sur Google ... ou w3schools.
Alin Purcaru

Ouais, c'est un peu ennuyeux
Šime Vidas

Cela fonctionne-t-il dans IE6? Pour une solution multi-navigateur, j'ai tendance à préférer ajouter des classes (.input-text, .input-submit, etc.), ça craint pour le développement html, mais cela rend le CSS et le Javascript un peu plus agréables.
zzzzBov

1
@MubasharAhmad J'ai mis à jour ma réponse et comme vous pouvez le voir, il n'y a une solution de contournement que si vous ciblez des navigateurs supérieurs à IE9.
Alin Purcaru

37

Vous pouvez utiliser le sélecteur d'attribut ici:

input[type="text"] {
    font-family: Arial, sans-serif;
}

Ceci est pris en charge dans IE7 et supérieur. Vous pouvez utiliser IE7.js pour ajouter la prise en charge de cela si vous devez prendre en charge IE6.

Voir: http://reference.sitepoint.com/css/attributeselector pour plus d'informations


Attention, la bonne famille de polices génériques ne l'est sans-serifpas san-serif.
Volker E.

14

J'utilise généralement des sélecteurs dans ma feuille de style principale, puis je crée un fichier .js (jquery) spécifique à ie6 qui ajoute une classe à tous les types d'entrée. Exemple:

$(document).ready(function(){
  $("input[type='text']").addClass('text');
)};

Et puis il suffit de dupliquer mes styles dans la feuille de style spécifique ie6 en utilisant les classes. De cette façon, le balisage réel est un peu plus propre.


C'est très lent
Hidayt Rahman

8

Vous pouvez utiliser le :textsélecteur pour sélectionner toutes les entrées avec du texte de type

Violon de travail

$(document).ready(function () {
    $(":text").css({    //or $("input:text")
        'background': 'green',
        'color':'#fff'
    });
});

:textest une extension jQuery et ne fait pas partie de la spécification CSS, les requêtes utilisant: text ne peuvent pas tirer parti de l'amélioration des performances fournie par la méthode native querySelectorAll () du DOM. Pour de meilleures performances dans les navigateurs modernes, utilisez [type="text"]plutôt. Cela fonctionnera pour IE6+.

$("[type=text]").css({  // or $("input[type=text]")
    'background': 'green',
    'color':'#fff'
});

CSS

[type=text] // or input[type=text] 
{
    background: green;
}

2

J'avais un champ de texte de type d'entrée dans un champ de ligne de tableau. Je le cible avec du code

.admin_table input[type=text]:focus
{
    background-color: #FEE5AC;
}


0

Avec le sélecteur d'attributs, nous ciblons le texte du type d'entrée en CSS

input[type=text] {
background:gold;
font-size:15px;
 }

0

entrée [type = texte]

Cela sélectionnera tout le texte du type d'entrée dans une page Web.


-1

Les sélecteurs d'attributs sont souvent utilisés pour les entrées. Voici la liste des sélecteurs d'attributs:

[title] Tous les éléments avec l'attribut title sont sélectionnés.

[title = banana] Tous les éléments qui ont la valeur 'banana' de l'attribut title.

[title ~ = banana] Tous les éléments qui contiennent «banana» dans la valeur de l'attribut title.

[title | = banana] Tous les éléments dont la valeur de l'attribut title commence par 'banana'.

[title ^ = banana] Tous les éléments dont la valeur de l'attribut title commence par 'banana'.

[title $ = banana] Tous les éléments dont la valeur de l'attribut title se termine par 'banana'.

[title * = banana] Tous les éléments dont la valeur de l'attribut title contient la sous-chaîne 'banana'.

Référence: https://kolosek.com/css-selectors/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.