W3docs

CSS ::placeholder Pseudo Elemento

Use o seletor CSS ::placeholder para estilizar o texto de placeholder de campos de formulário. Veja exemplos e saiba mais.

O pseudo-elemento ::placeholder seleciona o texto de placeholder de um campo de formulário — a dica breve exibida dentro de um <input> ou <textarea> vazio que desaparece assim que o usuário começa a digitar. Ele corresponde apenas a elementos que possuem o atributo placeholder. Por padrão, os navegadores renderizam o texto de placeholder em uma cor cinza claro ou semitransparente.

::placeholder pseudo-element

A dica em si vem do atributo HTML placeholder, enquanto ::placeholder permite estilizar a aparência dessa dica — sua cor, fonte e assim por diante.

Quando usar

Recorra ao ::placeholder quando quiser que a dica seja legível sobre o fundo do seu formulário, ou para combinar com as cores da sua marca. Alguns pontos importantes a saber antes de estilizá-lo:

  • Apenas um conjunto limitado de propriedades se aplica. Como o placeholder é um "pseudo conteúdo", você pode usar propriedades que afetam o próprio texto — color, font-*, letter-spacing, text-decoration, opacity, background e algumas outras. Propriedades de layout (como margin ou width) não têm efeito.
  • Mantenha contraste suficiente. O cinza claro padrão frequentemente não atende às diretrizes de contraste de acessibilidade. Se você redefinir a cor, certifique-se de que o texto permaneça legível.
  • Um placeholder não é um label. Ele desaparece assim que o usuário digita, portanto nunca deve substituir um <label> real. Use-o para um valor de exemplo, não para o nome do campo.
Informação

Prefixos de fornecedor (-webkit-, -moz-, -ms-) são legados e desnecessários para navegadores modernos. O seletor padrão ::placeholder é suportado em todos os lugares, então você pode escrever com segurança uma única regra ::placeholder.

Versão

Selectors Level 4

Sintaxe

Exemplo de sintaxe CSS ::placeholder

::placeholder {
  css declarations;
}

Exemplo do seletor ::placeholder:

Exemplo 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>

Exemplo do seletor ::placeholder usado em formulário:

Exemplo 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>

Exemplo do seletor ::placeholder com o atributo autofocus do HTML <input>:

Exemplo 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>

Tópicos relacionados

Prática

Prática
O que o pseudo-elemento ::placeholder no CSS representa?
O que o pseudo-elemento ::placeholder no CSS representa?
Was this page helpful?