W3docs

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.

Pseudoelemento ::placeholder

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 (como margin o width) 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.
Información

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

Selectors Level 4

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

Práctica

Práctica
¿Qué implica el pseudoelemento ::placeholder en CSS?
¿Qué implica el pseudoelemento ::placeholder en CSS?
Was this page helpful?