Я сделал вариант ответа Кея, используя псевдоэлемент ::after
вместо второго диапазона.вкратце:
.resizable-input { ... }
.resizable-input > input { ... }
.resizable-input::after { ... }
/* the last one used to be .resizable-input > span { ... } */
с html просто:
<span class="resizeable-input"><input type="text"/></span>
Смотрите полный код и смотрите его в действии здесь: https://jsfiddle.net/ElMoonLite/qh703tbe/
Также добавлено input { padding-right: 0.5em; }
такВы все еще можете изменить его размер, если его значение заполнено текстом.
По-прежнему работает в 2019 году в Chrome.
Изменение размера в Edge не работает (но в остальном выглядит нормально (постепенное ухудшение качества))).Еще не тестировали другие браузеры.