CSS ::placeholder Pseudoelemento
Usa el selector CSS ::placeholder para estilizar el texto de marcador de posición. Lee sobre el pseudoelemento y ve ejemplos.
El pseudoelemento ::placeholder selecciona el texto de marcador de posición de un campo de formulario — la pista breve que se muestra dentro de un <input> o <textarea> vacío, y que desaparece una vez que el usuario comienza a escribir. Solo coincide con elementos que tienen el atributo placeholder. De forma predeterminada, los navegadores renderizan el texto de marcador de posición con un color gris claro o semitransparente.
El texto de la pista proviene del atributo HTML placeholder, mientras que ::placeholder te permite estilizar cómo se ve esa pista: su color, fuente, etc.
Cuándo usarlo
Recurre a ::placeholder cuando quieras que la pista sea legible sobre el fondo del formulario, o que coincida con los colores de tu marca. Algunos aspectos a tener en cuenta antes de estilizarlo:
- Solo se aplica un conjunto limitado de propiedades. Dado que el marcador de posición es "pseudocontenido", puedes usar propiedades que afectan al texto en sí —
color,font-*,letter-spacing,text-decoration,opacity,background, entre otras. Las propiedades de diseño (comomarginowidth) no tienen efecto. - Mantén suficiente contraste. El gris claro predeterminado suele no cumplir las pautas de accesibilidad de contraste. Si cambias el color, asegúrate de que el texto siga siendo legible.
- Un marcador de posición no es una etiqueta. Desaparece en cuanto el usuario escribe, por lo que nunca debe reemplazar un verdadero
<label>. Úsalo para un valor de ejemplo, no como nombre del campo.
Los prefijos de proveedor (-webkit-, -moz-, -ms-) son heredados e innecesarios para los navegadores modernos. El selector estándar ::placeholder es compatible en todos ellos, por lo que puedes escribir una sola regla ::placeholder con total seguridad.
Versión
Sintaxis
Ejemplo de sintaxis CSS ::placeholder
::placeholder {
css declarations;
}Ejemplo del selector ::placeholder:
Ejemplo 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>Ejemplo del selector ::placeholder usado en un formulario:
Ejemplo de código 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>Ejemplo del selector ::placeholder con el atributo autofocus de HTML <input>:
Ejemplo 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>Temas relacionados
- Selector CSS
:focus— estiliza un campo mientras el usuario escribe en él. - Propiedad CSS
color— la propiedad que más frecuentemente se combina con::placeholder. - Etiqueta HTML
<input>y etiqueta HTML<textarea>— los elementos que llevan el atributoplaceholder.