html - How do you style a text input so that there's an icon on the left without using background-image? -
i'm trying create text input similar username , password input shown in pearson's testnav login (ignore yellow box).
to make icon on left, use background-image property. wondering if possible achieve same effect without using images. i've gotten pretty close, there 2 problems. border right of icon box rounded, , if click icon doesn't focus input. tried making input box background transparent , putting icon behind it, chrome overrides background color if site in password manager.
here's css/html of attempt: html:
<div class="field"> <input type="text"> <div class="icon"> <i class="fa fa-user"></i> </div> </div>
css:
.field input { outline: none; border: 0px solid #fff; font-size: 14px; padding: 5px 5px 5px 44px; position: absolute; width: 260px; height: 40px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0px 0px 0px 0px rgba(186,213,232,1); transition: border 0.5s ease-in-out 0s, box-shadow 0.3s ease-in-out 0s; } .field input:focus { border: 1px solid #2977ff; box-shadow: 0px 0px 10px 2px rgba(186,213,232,1); } .field .icon { display: flex; justify-content: center; align-items: center; height: 36px; width: 36px; padding: 0; border: 1px solid #eee; border-radius: 3px; margin: 1px 0px 0px 1px; position: absolute; background-color: #eee; }
try changing icon div label
<div class="field"> <input type="text" id="this-input"> <label class="icon" for="this-input"> <i class="fa fa-user"></i> </label> </div>
that way when clicked focuses element references (for="this-input")
to fix border radius. change icon style
border-radius: 3px;
to
border-radius: 3px 0 0 3px;
this starts top left corner , says 3px top left, 0 top right, 0 bottom right, , 3px bottom left borners
Comments
Post a Comment