Here is an alternate solution that skews the outer <span>
and not the inner <input>
It is still not perfect, but it does not skew the text or placeholder in the input field.
.skewed {
border: 1px solid transparent;
border-right: 5px solid #4d0026;
background-color:#e6e6e6;
display: inline-block;
-ms-transform: skewX(20deg); /* IE 9 */
-webkit-transform: skewX(20deg); /* Safari */
transform: skewX(20deg);
}
.skewed > input {
border: none;
background-color: transparent;
font-size: 17px;
height: 25px;
margin: 0 5px;
text-align :center;
-ms-transform: skewX(-20deg); /* IE 9 */
-webkit-transform: skewX(-20deg); /* Safari */
transform: skewX(-20deg);
width: 140px;
}
<span class="skewed"><input type="text" id="nameinp" placeholder=""/></span>