Я чувствую, что этот вопрос можно разделить на два отдельных:
Зачем использовать шрифты для иконок?
Зачем использовать псевдоэлементы :before для их отображения?
Для первой части причин много, но все сводится к тому, чтобы с ними было легко работать (поскольку они являются векторами, имеют прозрачный фон по своей природе, могут легко менять цвета) и имели очень хорошую поддержку даже в старых браузерах.
Во второй части использование псевдоэлементов означает, что ваши значки могут полностью «жить» в вашем файле CSS. Помимо того, что там их легче редактировать, они также относятся к этому месту — они не являются частью вашего контента, а скорее чем-то, что влияет на его внешний вид и, следовательно, не должно быть в вашем HTML. Думайте об этом как о том же различии, что и между тегом img и фоновым изображением CSS. свойство (еще раз - дизайн против содержания).
Кроме того, это предотвращает некоторые странные побочные эффекты, например, псевдоэлементы не могут быть выбраны и, следовательно, не могут быть скопированы. Если бы это было не так, все значки при копировании приводили бы к странным символам в месте назначения, куда вы их копируете.
person
fstanis
schedule
11.12.2016