CSS - Pseudo-class :valid



The CSS pseudo-class :valid is used for <input> or other <form> elements that have valid content according to the specified rules. It helps make valid fields look different to confirm to users that their data is formatted correctly.

This is useful for highlighting correctly filled fields in a form.

Syntax

:valid {
   /* css declarations */
 }

CSS :valid Example

The following example demonstrates how to use the :valid pseudo-class.

<html>
<head>
<title>Indicating Valid and Invalid Form Fields</title>
<style>
   input:valid {
      border: 2px solid green;
   }
   input:invalid {
      border: 2px solid red;
   }
   input:invalid + span::before {
      content: "Invalid ✖";
      color: red;
  }
  input:valid + span::before {
      content: "Valid ✓";
      color: green;
  }
</style>
</head>
<body>
<form>
<div>
  <label for="name">Name:</label>
  <input type="text" id="name" required>
  <span></span>
  </div>
  <br>
<div>
  <label for="email">Email:</label>
  <input type="email" id="email" required>
  <span></span>
</div>
<br>
<div>
  <label for="password">Password:</label>
  <input type="password" id="password" required>
  <span></span>
</div>
<br>
<div>
  <input type="submit" value="Submit">
  </div>
</form>
</body>
</html>

Observe that the mandatory text inputs are considered invalid when left empty, but they become valid when filled with correct content.

Green is often used to show valid input, but individuals with specific types of color blindness may have difficulty perceiving it. To address this, an additional indicator, such as descriptive text or a symbol, should be used to convey the status of the inputs without relying solely on color.
Advertisements