CSS ::placeholder Pseudo-élément
Utilisez le sélecteur CSS ::placeholder pour styliser le texte indicatif d'un champ de formulaire. Découvrez ce pseudo-élément et consultez des exemples.
Le pseudo-élément ::placeholder sélectionne le texte indicatif d'un champ de formulaire — l'indice court affiché à l'intérieur d'un <input> ou d'un <textarea> vide, qui disparaît dès que l'utilisateur commence à taper. Il ne correspond qu'aux éléments portant un attribut placeholder. Par défaut, les navigateurs affichent le texte indicatif dans une couleur semi-transparente ou gris clair.
L'indice lui-même provient de l'attribut HTML placeholder, tandis que ::placeholder vous permet de styliser l'apparence de cet indice — sa couleur, sa police, et ainsi de suite.
Quand l'utiliser
Utilisez ::placeholder lorsque vous souhaitez que l'indice soit lisible sur le fond de votre formulaire, ou qu'il corresponde aux couleurs de votre marque. Quelques points à connaître avant de le styliser :
- Seul un ensemble limité de propriétés s'applique. Comme le placeholder est du « pseudo-contenu », vous pouvez utiliser des propriétés qui affectent le texte lui-même —
color,font-*,letter-spacing,text-decoration,opacity,background, et quelques autres. Les propriétés de mise en page (commemarginouwidth) n'ont aucun effet. - Conservez un contraste suffisant. Le gris clair par défaut ne respecte souvent pas les règles d'accessibilité en matière de contraste. Si vous modifiez la couleur, assurez-vous que le texte reste lisible.
- Un placeholder n'est pas un label. Il disparaît dès que l'utilisateur commence à taper, il ne doit donc jamais remplacer un vrai
<label>. Utilisez-le pour une valeur exemple, pas pour le nom du champ.
Les préfixes vendeurs (-webkit-, -moz-, -ms-) sont des héritages du passé et inutiles pour les navigateurs modernes. Le sélecteur standard ::placeholder est pris en charge partout, vous pouvez donc écrire une seule règle ::placeholder en toute sécurité.
Version
Syntaxe
Exemple de syntaxe CSS ::placeholder
::placeholder {
css declarations;
}Exemple du sélecteur ::placeholder :
Exemple CSS ::placeholder
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
input::placeholder {
color: #1c87c9;
font-size: 1.2em;
font-style: italic;
}
</style>
</head>
<body>
<h2>::placeholder selector example</h2>
<input placeholder="Type here..." />
</body>
</html>Exemple du sélecteur ::placeholder utilisé dans un formulaire :
Exemple de code CSS ::placeholder
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
* {
box-sizing: border-box;
}
.container {
margin: 20px auto;
max-width: 250px;
background-color: #8ebf42;
padding: 20px;
}
input {
border: 1px solid #666666;
background-color: #eeeeee;
padding: 15px;
margin-bottom: 20px;
display: block;
width: 100%;
}
input::-webkit-input-placeholder {
color: #666666;
}
input::-moz-placeholder {
color: #666666;
}
input:-ms-input-placeholder {
color: #666666;
}
input::placeholder {
color: #666666;
}
</style>
</head>
<body>
<h2>::placeholder selector example</h2>
<div class="container">
<form>
<input type="text" placeholder="Lorem ipsum is simply..." />
<input type="date" placeholder="DD/MM/YYYY" />
</form>
</div>
</body>
</html>Exemple du sélecteur ::placeholder avec l'attribut autofocus de <input> HTML :
Exemple HTML de placeholder
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
label {
display: block;
color: #777777;
margin: 0 0 4px;
}
input {
border: 1px solid transparent;
padding: 15px;
font-size: 1.2em;
outline: 0;
}
input::placeholder {
color: #8ebf42;
}
label,
input {
font-family: sans-serif;
}
</style>
</head>
<body>
<h2>::placeholder selector example</h2>
<form action="#">
<div>
<label for="name">Name:</label>
<input id="name" name="name" type="text" placeholder="Enter your name here" autofocus />
</div>
</form>
</body>
</html>Sujets connexes
- Sélecteur CSS
:focus— stylisez un champ pendant que l'utilisateur y tape. - Propriété CSS
color— la propriété que vous combinez le plus souvent avec::placeholder. - Balise HTML
<input>et balise HTML<textarea>— les éléments qui portent l'attributplaceholder.