Как стать автором
Обновить

Firefox и псевдокласс first-letter

Время на прочтение2 мин
Количество просмотров5K
Возникла у нас в команде необходимость в одном выпадающем списке добавить значки к элементам списка в зависимости от типа элемента. Сам список сторонний компонент, который трогать не хотелось. Значки реализованы в виде шрифта, т. е. являются символами юникода.
В качестве решения на сервере в зависимости от типа элемента добавили в качестве обычной буквы символ значка \uXXXX и на клиенте получили красивые квадратики, поскольку шрифт, используемый для списка не содержит в себе коды наших иконок. Тут нам на помощь пришел CSS псевдокласс ::first-letter

Эта инструкция хорошо описана в «Псевдокласс: first-letter» и в «12 малоизвестных фактов о CSS (продолжение)».

Все работает как часы: задаем класс, задаем псевдокласс с нашим шрифтом (font-family), запускаем — работает в Хроме. Контрольная проверка в IE11 и в Edge – работает. А вот в Firefox – не работает. После всех плясок с бубном (очистки истории и кеша) окончательно убеждаемся, что в Firefox точно не работает.

Поиск в интернете показал (https://css-tricks.com/forums/topic/first-letter-firefox-problem ), что Firefox пытается определить является ли символ буквой, чтобы применить псевдокласс, и если он думает иначе, то псевдокласс просто игнорируется. Это в целом соответствует информации из «12 малоизвестных фактов о CSS (продолжение)», но очевидно, что Firefox понимает под «небуквами» что-то свое, не соответствующее пониманиям других современных браузеров.

Нам решить эту проблему в лоб не удалось, пришлось в клиенте добавлять span в элементы списка с нашими специальными символами.

Вывод, к сожалению, такой, что в настоящий момент псевдокласс first-letter для решения проблемы отображения кастомного символа в строке применять нельзя.

UPD Спасибо dartraiden — эта проблема известна в мозилле — официальный баг
Теги:
Хабы:
Всего голосов 10: ↑7 и ↓3+4
Комментарии10

Публикации

Истории

Работа

Веб дизайнер
52 вакансии

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн