Hello everyone π, I hope you are doing great.
So, Today we are going to learn how to create a floating label using HTML and CSS π.
π HTML
Let's first set up our HTML.
<main>
<form>
<div>
<input id="email" type="email" placeholder=" " />
<label for="email">Email</label>
</div>
<div>
<input id="password" type="password" placeholder=" " />
<label for="password">Password</label>
</div>
<button>Login</button>
</form>
</main>
π¨ CSS
Now, let's set up our CSS.
div {
display: flex;
flex-direction: column-reverse;
}
input {
border: none;
padding: 1rem;
margin-top: 2rem;
font-size: 1.6rem;
border-bottom: 0.2rem solid #bdbdbd;
outline: none;
}
label {
padding-left: 1rem;
color: #bdbdbd;
transform: translateY(4.8rem);
transform-origin: left top;
cursor: text;
}
Now, let's set up the input
functionality when the input
is focused.
input:focus,
input:not(:placeholder-shown) {
border-bottom: 0.2rem solid #212121;
}
input:focus ~ label,
input:not(:placeholder-shown) ~ label {
padding: 0;
color: #212121;
transform: translateY(2rem) scale(0.8);
}
That's It π.
Example
π Further Reading:
Thanks for reading! My name is Bipin Rajbhar; I love helping people to learn new skills π. You can follow me on Twitter if youβd like to be notified about new articles and resources.
Top comments (1)
Very important further reading: