Das HTML sieht irgendwie falsch aus. Ein INPUT gewrappt von einem A-Tag? Nimm mal das A-Tag dort weg, dann kannst du das so machen.
HTML-Code:
input {
background-color: snow;
color: black;
padding: 0 1em 0 40px;
line-height: 40px;
background-image: url(https://placeimg.com/24/24/tech/sepia);
background-position: 8px center;
background-repeat: no-repeat;
}
Mit ::before ist in diesem Fall schlecht. Erstens, weil man einem INPUT keine Pseudoelemente geben kann. Zweitens, weil dieses ::before dann nicht auf das Klick reagieren würde, wenn es auf dem div.submit läge.
Lesezeichen