CSS ::placeholder Pseudo Element

The ::placeholder pseudo-class is used to style the placeholder text of a form element. The ::placeholder pseudo-element selects <form> elements with placeholder text in an <input> field. By default, the appearance of placeholder text is a semi-transparent or light gray color in most browsers.

The placeholder text is set with the placeholder attribute, which specifies a hint that describes the expected value of an input field.

For maximum browser compatibility, the ::placeholder selector works with the -webkit-, -moz-, -ms- prefixes.

Version

Selectors Level 4

Syntax

::placeholder {
css declarations;
}

Example of the ::placeholder selector:

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

Example of the ::placeholder selector used in form:

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

Example of the ::placeholder selector with the HTML <input> autofocus attribute:

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

Browser support

57.0+ Partial 51.0+19.0-50.0
-webkit-
10.1+ 444.0+

Practice Your Knowledge

All of the below are prefixes the ::placeholder selector works with, except



Do you find this helpful?

Related articles