Pure CSS to achieve input box placeholder animation and input verification

Pure CSS to achieve input box placeholder animation and input verification

For more exciting content, please visit https://github.com/abc-club/free-resources

background

Without further ado, can we use pure CSS to achieve the following effects:

The answer is yes.

This can be achieved with the help of css:placeholder-shown:valid:invalid pseudo-class and html5 input pattern attribute

The current compatibility of the :placeholder-shown pseudo-class is as follows:

:placeholder-show compatibility

Directly on the code! ☺️

Source code

https://jsbin.com/qenucaz/edit?html,css,output

html:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div class="input-fill-box">
    <input class="input-fill" placeholder="Email" pattern="^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$" required>
    <a href="javascript:" class="clear">close</a>
    <label class="input-label">Email</label>
</div>
</body>
</html>

css:

.input-fill{
  width: 100%;
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  outline: none;
  padding: 20px 16px 6px;
  border: 1px solid transparent;
   background: #f5f5fa;
  border-radius:10px;
  transition: border-color .25s;
}
.input-fill:placeholder-shown::placeholder {
    color: transparent;
    
}
.input-fill-box {
  width: 50%;
    position: relative;
}
.input-label {
    position: absolute;
    left: 16px; top: 14px;
    pointer-events: none;
    color:#BEC1D9;
   padding: 0 2px;
    transform-origin: 0 0;
    pointer-events: none;
    transition: all .25s;
}
.input-fill:not(:placeholder-shown) ~ .input-label,
.input-fill:focus ~ .input-label {
    transform: scale(0.75) translate(0px, -14px);    
}
.input-fill:focus{
  border: 2px solid #1d31aa;
}

.clear{
  position:absolute;
  top:10px;
  right:-20px;
   display: none;
    transition: all .25s;
}
.input-fill::-ms-clear { display: none; }
.input-fill:not(:placeholder-shown) + .clear { display: inline; }

.input-fill:valid {
 border-color: green;
 box-shadow: inset 5px 0 0 green;
}
.input-fill:not(:placeholder-shown):invalid {
 border-color: red;
 box-shadow: inset 5px 0 0 red;
}

More

For more exciting content, please visit https://github.com/abc-club/free-resources

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

<<:  The concept of MySQL tablespace fragmentation and solutions to related problems

>>:  How to install docker under centos and remotely publish docker in springboot

Recommend

Detailed explanation of count(), group by, order by in MySQL

I recently encountered a problem when doing IM, a...

Detailed tutorial on installing harbor private warehouse using docker compose

Overview What is harbor? The English word means: ...

Detailed steps for smooth transition from MySQL to MariaDB

1. Introduction to MariaDB and MySQL 1. Introduct...

Summary of the most commonly used knowledge points about ES6 new features

Table of contents 1. Keywords 2. Deconstruction 3...

How to use negative margin technology to achieve average layout in CSS

We usually use float layout to solve the compatib...

Tutorial on installing MySQL 5.7.18 decompressed version on Windows

1. Installation process MySQL version: 5.7.18 1. ...

How to make your JavaScript functions more elegant

Table of contents Object parameters using destruc...

JS implements random roll call system

Use JS to implement a random roll call system for...

A brief discussion on the placement of script in HTML

I used to think that script could be placed anywh...

Native js to implement drop-down menu

Drop-down menus are also very common in real life...

The implementation process of Linux process network traffic statistics

Preface Linux has corresponding open source tools...

Summary of common Mysql DDL operations

Library Management Create a library create databa...

Detailed explanation of MySQL information_schema database

1. Overview The information_schema database is th...

Detailed explanation of the specific use of the ENV instruction in Dockerfile

1. The ENV instruction in the Dockerfile is used ...