Не у всех HTML тегов есть собственное содержимое, поэтому не во всех случаях стоит ждать корректного результата при использовании псевдоэлементов на следующих тегах
<img>
,
<input type="text">
,
<input type="email">
,
<input type="password">
,
<input type="datetime">
, etc.
Однако вы можете обернуть input в дополнительный тег, после чего использовать псевдоэлемент родительского элемента.
<div class="inputbox">
<input type="text">
</div>
.inputbox::after {
/* ...стили для псевдоэлемента */
}