I want to position a label on top of an input tag permanently, rather than having it inside the input tag where it jumps to the top when clicked.
Here is my attempted solution:
input {
font-size: 18px;
padding: 10px 10px 10px 5px;
-webkit-appearance: none;
display: block;
background: #fafafa;
color: #636363;
width: 100%;
border: none;
border-radius: 0;
border-bottom: 1px solid #757575;
}
input:focus {
outline: none;
}
/* Label */
label {
color: #999;
font-size: 18px;
font-weight: normal;
position: absolute;
pointer-events: none;
left: 5px;
top: 10px;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
}
/* active */
input:focus ~ label,
input.used ~ label {
top: -20px;
-webkit-transform: scale(.75);
transform: scale(.75);
left: -2px;
/* font-size: 14px; */
color: #000;
}
/* Underline */
.bar {
position: relative;
display: block;
width: 100%;
}
.bar:before,
.bar:after {
content: '';
height: 2px;
width: 0;
bottom: 1px;
position: absolute;
background: #4a89dc;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
}
.bar:before {
left: 50%;
}
.bar:after {
right: 50%;
}
/* active */
input:focus ~ .bar:before,
input:focus ~ .bar:after {
width: 50%;
}
/* Highlight */
.highlight {
position: absolute;
height: 60%;
width: 100px;
top: 25%;
left: 0;
pointer-events: none;
opacity: 0.5;
}
/* active */
input:focus ~ .highlight {
-webkit-animation: inputHighlighter 0.3s ease;
animation: inputHighlighter 0.3s ease;
}
<div class="group">
<input type="text" name="name" placeholder="" readonly>
<span class="highlight">
</span><span class="bar"></span>
<label>FULLNAME</label>
</div>
I am seeking guidance on how to keep the label positioned on top of the input tag at all times, without it moving inside the input when clicked.