Existe-t-il un moyen de détecter si la zone de saisie contient du texte via CSS ? J'ai essayé d'utiliser la pseudo-classe :empty
et [value=""]
Je n'arrive pas à trouver une solution.
Je suppose que cela doit être possible, étant donné que nous avons des pseudo-classes comme :checked
et :indeterminate
Veuillez noter : Je fais cela pour un style " élégant » et je ne peux pas utiliser JavaScript.
Notez également que Stylish est utilisé sur les pages sur lesquelles l'utilisateur n'a aucun contrôle, côté client.
Vous pouvez utiliser des
:placeholder-shown
pseudo-classes. Techniquement, un espace réservé est requis, mais vous pouvez utiliser un espace à la place.Stylishne peut pas faire cela car CSS ne le permet pas.CSS n'a pas de (pseudo) sélecteurs pour
valeurs.Voir :
. En effet, la:empty
Les sélecteurs ne fonctionnent que sur les nœuds enfants, pas sur les valeurs d'entrée.[value=""]
[value=""]
可以工作;但仅适用于初始状态。这是因为CSS所看到的节点的value
属性与节点的value
peutfonctionner mais uniquement dans l'étatinitialvaleur
propertydu nœud telle que vue par CSS est différente de la
À moins que vous ne vous souciez que de l'état initial,valeur
propertydu nœud (modifiée par l'utilisateur ou le JavaScript DOM et soumise en tant que données de formulaire) .vousdevezutiliser un script utilisateur ou un script Greasemonkey.Heureusement, ce n’est pas difficile. Le script suivant fonctionnera dans Chrome, ou dans Firefox avec Greasemonkey ou Scriptish installé, ou dans tout navigateur prenant en charge les scripts utilisateur (c'est-à-dire la plupart des navigateurs, à l'exception d'IE).
Voir une démo des limitations CSS et des solutions JavaScript sur cette page jsBin.