Разница между псевдоэлементами :placeholder-shown и ::placeholder заключается в том, что они выполняют разные задачи. 12
:placeholder-shown предназначен для выделения самого поля ввода, когда отображается текст-подсказка (плейсхолдер). 23 Он выбирает на странице все элементы или
:placeholder отвечает за стилизацию текста-подсказки. 2 Стили, применённые к этому псевдоэлементу, изменят внешний вид текста-подсказки, но не затронут само поле ввода. 3
Таким образом, :placeholder-shown выделяет форму ввода, когда текст в ней отображается, а ::placeholder стилизует сам текст-заглушку. 2