<div class="cp_iptxt">
<input class="ef" type="text" placeholder="">
<label>お名前</label>
<span class="focus_line"><i></i></span>
</div>
.cp_iptxt {
position: relative;
width: 80%;
margin: 40px 3%;
}
.cp_iptxt input[type='text'] {
font: 15px/24px sans-serif;
box-sizing: border-box;
width: 100%;
letter-spacing: 1px;
padding-left: 4em;
}
.cp_iptxt input[type='text']:focus {
outline: none;
}
.ef {
padding: 7px 14px;
transition: 0.4s;
border: 1px solid #1b2538;
background: transparent;
}
.ef ~ .focus_line:before,
.ef ~ .focus_line:after {
position: absolute;
top: -1px;
left: 50%;
width: 0;
height: 2px;
content: '';
transition: 0.4s;
background-color: #da3c41;
}
.ef ~ .focus_line:after {
top: auto;
bottom: 0;
}
.ef ~ .focus_line i:before,
.ef ~ .focus_line i:after {
position: absolute;
top: 50%;
left: 0;
width: 2px;
height: 0;
content: '';
transition: 0.6s;
background-color: #da3c41;
}
.ef ~ .focus_line i:after {
right: 0;
left: auto;
}
.ef:focus ~ .focus_line:before,
.ef:focus ~ .focus_line:after,
.cp_iptxt.ef ~ .focus_line:before,
.cp_iptxt.ef ~ .focus_line:after {
left: 0;
width: 100%;
transition: 0.4s;
}
.ef:focus ~ .focus_line i:before,
.ef:focus ~ .focus_line i:after,
.cp_iptxt.ef ~ .focus_line i:before,
.cp_iptxt.ef ~ .focus_line i:after {
top: -1px;
height: 100%;
transition: 0.6s;
}
.ef ~ label {
position: absolute;
z-index: -1;
top: 10px;
left: 14px;
width: 100%;
transition: 0.3s;
letter-spacing: 0.5px;
color: #aaaaaa;
}
.ef:focus ~ label,
.cp_iptxt.ef ~ label {
font-size: 12px;
top: -18px;
left: 0;
transition: 0.3s;
color: #da3c41;
}