Нумерованные списки на символах Юникода

Нумерованные списки на символах Юникода

От автора: нумерованные списки – одни из самых старых и семантически богатых элементов в HTML. Когда вам нужно передать последовательность или рейтинг, используйте тег ol. По умолчанию тег ol отображает числа слева от пункта списка. С помощью свойства list-style-type нумерацию можно сменить на римские цифры или буквы алфавита. Любите экзотику, тогда можете взять числа из других культур, например, Иврит или Греция. Полный список доступных значений хорошо задокументирован и прост в использовании.

Недавно я подумал, что в некоторых нумерованных списках, которые объясняют особенности моей HTML5-игры Triple Score Bopzee, можно использовать игральную кость вместо чисел. Сперва я экспериментировал с уже знакомой техникой, где на селекторах li:before списка используется маленькое фоновое изображение. Одно из изменений – вместо list-style-type: none я использовал list-style-type: decimal и list-style-image. В качестве значения для последнего я передал 1х1 прозрачное GIF-изображение. Это небольшое изменение помогает пройти тест доступности, так как скрин ридеры будут видеть список с валидными числами.

Для демонстрации этой классической техники я создал Pen, в котором числа были в виде GIF-изображений с мячами четырех основных видов спорта внутри.

Эта техника подошла бы для сайта игры, однако мне стало интересно, как сделать то же самое, но без изображений. Ответ – использовать символы Юникода от \2680 и до \2685 (6 сторон кубика). Я создал класс dicey и с помощью псевдоселекторов nth-child и before позиционировал и выбрал символ Юникода для каждого элемента списка. Чтобы сгладить различия в браузерах, я добавил ссылку в библиотеку Normalize.css.

Pen готового списка с кубиками:

Список выглядит следующим образом:

Стили:

Я не указывал шрифт, который отображал бы символы Юникода. Результат был довольно неплохой, потому что сегодня каждый современный браузер и устройство с выходом в интернет имеют хотя бы один шрифт с обязательными символами из блока Юникода «Miscellaneous Symbols». Были некоторые различия в отображении, но это терпимо. Однако я понимал, что если мне нужен полный контроль, то мне нужно найти бесплатный веб-шрифт. Я нашел шрифт DejaVu, который просматривает поддерживаемые шрифты в таблице глифов для блока «Miscellaneous Symbols».

Как только я узнал название шрифта, я создал WebFont набор на Font Squirrel. Во время создания набора нужно выбрать опцию «No subsetting», чтобы шрифты содержали все символы Юникода, необходимые для иконок. Если же вы думаете о размере файла, то можете скачать шрифты TrueType и OpenType и зайти в генератор Font Squirrel WebFont в режиме эксперта и включить только символы Юникода от 2600 до 26FF (блок «Miscellaneous Symbols»).

Как только вы начнете копаться в Юникоде, веселья будет все больше и больше. Я потратил очень много времени, изучая иконки шрифта DejaVu (весь список). В шрифте я нашел символы игральных карт, астрологические символы, стрелки, точки, музыкальные символы, геометрические формы и еще кучу загогулин, которые я не могу описать. Я выбрал мои любимые и создал демо с разными списками.

А что же с маркированными списками?

Тегам ul можно задать те же символы Юникода, но нужно слегка подкорректировать эту технику. Демо:

Будущие способы

Есть новое CSS-правило @counter-style, с помощью которого можно будет с легкость создавать кастомные стили для счетчиков в нумерованных списках. Можно будет задавать используемые символы, диапазон списка и множество других настроек. Спецификация CSS Counter Styles Level 3 в настоящее время находится в статусе Candidate Recommendation на W3C, однако на май 2017 только Firefox поддерживает ее (с некоторыми ограничениями). Я думаю, что в Chrome, Edge и Safari скоро появится поддержка, однако в последней версии IE (11) поддержки не будет. Если вам нужно поддерживать этот браузер, то вам придется пользоваться методами, описанными в этом посте до тех пор, пока люди не перестанут пользоваться IE11 (может, году к 2020?).

Заметьте, что @counter-style не дает возможности стилизовать символ счетчика через CSS. Так что даже после массового принятия будут альтернативные решения наподобие нашего. Более подробно с @counter-style можно ознакомиться на MDN. Ниже представлено демо.

Демо работает только в Firefox:

Демо маркированного списка сверху с разными стилями иконок!

Автор: Steven Estrella

Источник: //css-tricks.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: