Chrome prend en charge l' attribut d'espace réservé sur les input[type=text]
éléments (d'autres le font probablement aussi).
Mais ce qui suit CSS
ne fait rien à la valeur de l'espace réservé:
input[placeholder], [placeholder], *[placeholder] {
color: red !important;
}
<input type="text" placeholder="Value">
Value
restera toujours à la grey
place de red
.
Existe-t-il un moyen de modifier la couleur du texte d'espace réservé?
css
html
placeholder
html-input
David Murdoch
la source
la source
<input>
balise, comme leinput
sélecteur, mais en affichant le texte d'espace réservé tout à l'heure. Il ne correspond pas non plus à l'attribut d'espace réservé lui-même.input
sélecteur car il sélectionne tous lesinput
éléments.:placeholder-shown
sélectionne uniquement lesinput
éléments qui affichent actuellement l'espace réservé, vous permettant de styliser uniquement ces éléments et de styliser efficacement le texte de l'espace réservé. Qu'est-ce que tu essayes de dire?textarea
éléments quiRéponses:
la mise en oeuvre
Il existe trois implémentations différentes: les pseudo-éléments, les pseudo-classes et rien.
::-webkit-input-placeholder
. [ Réf ]:-moz-placeholder
( un deux-points). [ Réf ]::-moz-placeholder
mais l'ancien sélecteur fonctionnera encore pendant un certain temps. [ Réf ]:-ms-input-placeholder
. [ Réf ]::placeholder
[ Ref ]Internet Explorer 9 et versions antérieures ne prennent pas du tout en charge l'
placeholder
attribut, tandis qu'Opera 12 et versions antérieures ne prennent en charge aucun sélecteur CSS pour les espaces réservés.La discussion sur la meilleure mise en œuvre est toujours en cours. Notez que les pseudo-éléments agissent comme de vrais éléments dans le Shadow DOM . Un
padding
sur uninput
n'obtiendra pas la même couleur de fond que le pseudo-élément.Sélecteurs CSS
Les agents utilisateurs doivent ignorer une règle avec un sélecteur inconnu. Voir Sélecteurs niveau 3 :
Nous avons donc besoin de règles distinctes pour chaque navigateur. Sinon, l'ensemble du groupe serait ignoré par tous les navigateurs.
Notes d'utilisation
opacity: 1
ici.em
et testez-les avec de grands paramètres de taille de police minimale. N'oubliez pas les traductions: certaines langues ont besoin de plus d'espace pour le même mot.placeholder
mais sans prise en charge CSS (comme Opera) doivent également être testés.input
types (email
,search
). Ceux-ci peuvent affecter le rendu de manière inattendue. Utilisez les propriétés-webkit-appearance
et-moz-appearance
pour changer cela. Exemple:la source
*:-ms-input-placeholder
et:-ms-input-placeholder
en lui-même ne fonctionne pas, maisINPUT:-ms-input-placeholder
fonctionne. Impair.Cela stylisera tous
input
et lestextarea
espaces réservés.Remarque importante: ne regroupez pas ces règles. Au lieu de cela, créez une règle distincte pour chaque sélecteur (un sélecteur non valide dans un groupe rend le groupe entier non valide).
la source
Vous pouvez également créer des zones de texte:
la source
Pour les utilisateurs Bootstrap et Less , il existe un mixplace .placeholder:
la source
@input-color-placeholder
- généralement trouvée dans variables.lessEn plus de la réponse de toscho, j'ai remarqué des incohérences de webkit entre Chrome 9-10 et Safari 5 avec les propriétés CSS prises en charge qui méritent d'être notées.
Plus précisément Chrome 9 et 10 ne prennent pas en charge
background-color
,border
,text-decoration
ettext-transform
en dénommant l'espace réservé.La comparaison complète entre les navigateurs est ici .
la source
Pour les utilisateurs de Sass :
la source
@content;
Cela fonctionnera bien. DÉMO ICI:
la source
Dans Firefox et Internet Explorer, la couleur de texte d'entrée normale remplace la propriété color des espaces réservés. Nous devons donc
la source
Solution multi-navigateur:
Crédits: David Walsh
la source
Utilisez le nouveau
::placeholder
si vous utilisez le préfixe automatique .Notez que le mixin .placeholder de Bootstrap est déconseillé en faveur de cela.
Exemple:
Lorsque vous utilisez le préfixe automatique, ce qui précède sera converti en le code correct pour tous les navigateurs.
la source
Nous avons maintenant un moyen standard d'appliquer CSS à l'espace réservé d'une entrée: le
::placeholder
pseudo-élément de ce brouillon de module CSS de niveau 4.la source
Je viens de réaliser quelque chose pour Mozilla Firefox 19+ que le navigateur donne une valeur d'opacité pour l'espace réservé, donc la couleur ne sera pas ce que vous voulez vraiment.
J'écrase le
opacity
pour 1, donc ce sera bien d'y aller.la source
Je ne me souviens pas où j'ai trouvé cet extrait de code sur Internet (il n'a pas été écrit par moi, je ne me souviens pas où je l'ai trouvé, ni qui l'a écrit).
Chargez simplement ce code JavaScript, puis modifiez votre espace réservé avec CSS en appelant cette règle:
la source
Je pense que ce code fonctionnera car un espace réservé n'est nécessaire que pour le texte de type d'entrée. Donc, ce CSS d'une ligne sera suffisant pour votre besoin:
la source
::placeholder
avec le préfixeur automatique.Pour les utilisateurs de Bootstrap , si vous utilisez
class="form-control"
, il peut y avoir un problème de spécificité CSS. Vous devriez obtenir une priorité plus élevée:Ou si vous utilisez Less :
la source
Si vous utilisez Bootstrap et que vous ne parvenez pas à le faire fonctionner, vous avez probablement manqué le fait que Bootstrap lui-même ajoute ces sélecteurs. Il s'agit de Bootstrap v3.3 dont nous parlons.
Si vous essayez de modifier l'espace réservé dans une classe CSS .form-control, vous devez le remplacer comme ceci:
la source
Ce code court et propre:
la source
Que dis-tu de ça
Pas de CSS ni d'espace réservé, mais vous obtenez les mêmes fonctionnalités.
la source
<input type="text" value="placeholder text" onfocus="if(!this.haswriting){this.style.color='#000'; this.value='';}" onblur="if(!this.value){this.style.color='#f00'; this.value='placeholder text'; this.haswriting=false;}else{this.haswriting=true};" style="color: #f00;"/>
<form>
avec cette entrée, le texte de l'espace réservé sera envoyé au serveur. J'ai vu tellement de sites faire mal.J'ai essayé toutes les combinaisons ici pour changer la couleur, sur ma plate-forme mobile, et finalement c'était:
qui a fait l'affaire.
la source
This property allows you to specify a fill color for text. If it is not set, then the color property will be used to do the fill.
Il me semble que vous avez une autre règle CSS qui définit lacolor
propriété.Pour les utilisateurs SASS / SCSS utilisant Bourbon , il a une fonction intégrée.
Sortie CSS, vous pouvez également saisir cette partie et la coller dans votre code.
la source
essayez ce code pour différents éléments différents style d'entrée
Exemple 1:
exemple 2:
la source
Voici encore un exemple:
la source
Ajout d'une réelle possibilité très agréable et simple: les filtres CSS !
Il stylisera tout, y compris l'espace réservé.
Les éléments suivants définiront les deux entrées sur la même palette, en utilisant le filtre de teinte pour le changement de couleur. Il rend très bien maintenant dans les navigateurs (sauf ie ...)
Pour permettre aux utilisateurs de le modifier dynamiquement, en utilisant une couleur de type d'entrée pour les modifications ou pour trouver des nuances, consultez cet extrait:
De: https://codepen.io/Nico_KraZhtest/pen/bWExEB
Documents sur les filtres CSS: https://developer.mozilla.org/en-US/docs/Web/CSS/filter
la source
OK, les espaces réservés se comportent différemment dans les différents navigateurs, vous devez donc utiliser le préfixe du navigateur dans votre CSS pour les rendre identiques, par exemple Firefox donne une transparence à l'espace réservé par défaut, alors vous devez ajouter l'opacité 1 à votre CSS, plus la couleur, ce n'est pas un gros souci la plupart du temps, mais bon de les avoir cohérents:
la source
Vous pouvez modifier la couleur de l'espace réservé d'une entrée HTML5 avec CSS. Si par hasard, votre conflit CSS, cette note de code fonctionne, vous pouvez utiliser (! Important) comme ci-dessous.
J'espère que cela vous aidera.
la source
Vous pouvez l'utiliser pour le style de saisie et de mise au point:
la source
Le moyen le plus simple serait:
la source
Compass a un mixin pour cela hors de la boîte.
Prenez votre exemple:
Et dans SCSS en utilisant une boussole:
Voir les documents pour le mixin entrée-espace réservé.
la source
Voici la solution avec les sélecteurs CSS
:: - webkit-input-placeholder.
:: -moz-placeholder (un deux-points).
Mozilla Firefox 19+ utilise un pseudo-élément:
:: - moz-placeholder, mais l'ancien sélecteur fonctionnera encore pendant un certain temps.
:: -ms-input-placeholder.
la source
Une partie du HTML:
Je vais montrer comment changer la couleur d'expression de 'Enter phrase' par CSS:
la source