В CSS можно стилизовать placeholder
текст во входных данных, используя комбинацию псевдоклассов и псевдоэлементов, зависящих от поставщика (чтобы получить наилучшее кросс-браузерное покрытие).
Все они имеют одни и те же основные свойства (например, стиль текста и объявления цвета).
Однако, несмотря на то, что я неизбежно хочу применять одни и те же стили независимо от поставщика браузера, представляется невозможным объединить их вместе в селектор, разделенный запятыми (как вы сделали бы с любым другим фрагментом CSS, где вы хотите, чтобы два селектора разделялись). одинаковые стили).
В качестве примера я склонен ориентироваться на стиль заполнителя, используя четыре следующих селектора:
input:-moz-placeholder
input::-moz-placeholder
input:-ms-input-placeholder
input::-webkit-input-placeholder
(хотя :-moz-placeholder
рекомендуется в пользу ::-moz-placeholder
это произошло только с выпуском FireFox 19, поэтому в настоящее время для лучшей поддержки браузера необходимы оба).
Что расстраивает, так это то, что объявление и предоставление каждого (одного и того же) стиля приводит к большому количеству повторений в CSS.
Итак, чтобы убедиться, что текст-заполнитель выровнен по правому краю и выделен курсивом, я бы получил:
input:-moz-placeholder{
font-style: italic;
text-align: right;
}
input::-moz-placeholder{
font-style: italic;
text-align: right;
}
input:-ms-input-placeholder{
font-style: italic;
text-align: right;
}
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
Что я действительно хочу сделать, так это объединить их в один набор правил, разделенных запятыми, например:
input:-moz-placeholder,
input::-moz-placeholder,
input:-ms-input-placeholder,
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
Однако, несмотря на попытки сделать это несколько раз, похоже, это никогда не работает. Меня беспокоит, что есть какая-то фундаментальная часть CSS, которую я не понимаю.
Кто-нибудь может пролить свет на то, почему это происходит?