<div class="cp_iptxt">
<input class="ef" type="text" placeholder="">
<label>お名前</label>
<span class="focus_bg"></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 {
position: relative;
padding: 7px 15px;
border: 0;
border: 1px solid #1b2538;
background: transparent;
}
.ef ~ .focus_bg:before,
.ef ~ .focus_bg:after {
position: absolute;
z-index: -1;
top: 50%;
left: 50%;
width: 0;
height: 0;
content: '';
transition: 0.3s;
background-color: rgba(218,60,65,.3);
}
.ef:focus {
border: 1px solid #da3c41;
}
.ef:focus ~ .focus_bg:before,
.cp_iptxt.ef ~ .focus_bg:before {
top: 0;
left: 0;
width: 50%;
height: 100%;
transition: 0.3s;
}
.ef ~ .focus_bg:after {
top: auto;
right: 50%;
bottom: 50%;
left: auto;
}
.ef:focus ~ .focus_bg:after,
.cp_iptxt.ef ~ .focus_bg:after {
right: 0;
bottom: 0;
width: 50%;
height: 100%;
transition: 0.3s;
}
.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;
}