Как взять с чужего сайта элемент выводимый FontAwesome?

Главные вкладки

Аватар пользователя VasyOK VasyOK 30 сентября 2020 в 21:53

Приветствую. Специалисты по высокоуровнему фронтэенду есть на форуме?

На одном не моем сайте есть графический элемент, который выводится шрифтом.

.element::after {
    content: "\f107";
    font-family: FontAwesome;
}

Как скопировать этот элемент себе?

Комментарии

Аватар пользователя VasyOK VasyOK 30 сентября 2020 в 22:08

Я ж так понимаю FontAwesome - это набор значков, из которых вебмастер создал шрифт, и этим шрифтом на его сайте выводятся значки. Значит надо как-то его шрифт заполучить. Или нет?

Аватар пользователя VasyOK VasyOK 6 октября 2020 в 23:20

Наверное я немного поспешил, объявлять тему решенной. Поспешил, потому как в Линуксе и Файрфоксе все работало, а в других осях и бразурах - не все. Итак поставил модуль https://www.drupal.org/project/fontawesome.

1.  <i class="fa fa-phone"></i> - заработало - вывелся значек телефона.

2. <i class="fa fa-facebook"></i> - работает, только если Font Awesome Method: SVG with JS. При этом HTML комментриуется и заменяется SVG-шкой. Странно: на сайте-доноре такого не наблюдаю. Можно как-то исправить?

3.

.element::after {
    font-family: 'FontAwesome';
    content: "\f107";
}

Эта конструкция не зработала нигде. Как заставить ее работать?

Аватар пользователя vlucas vlucas 6 октября 2020 в 23:22

Просто почитайте документацию по fontawesome (не модулю).
Такие библиотеки лучше вообще без модуля подключать.

Аватар пользователя OldWarrior OldWarrior 6 октября 2020 в 23:35

vlucas wrote: Такие библиотеки лучше вообще без модуля подключать.

+1.
Действительно, зачем нужен отдельный модуль.

Аватар пользователя VasyOK VasyOK 7 октября 2020 в 1:07

Читать документацию хорошо тогда, когда знаешь о чем она написана.

Продвигаемся вперед. Отключил модуль. Зарегистрировался на сайте fontawesome.com получил код типа <script src="https://kit.fontawesome.com/abrakadabra.js" crossorigin="anonymous"></script>, скопировал его себе в файл_шаблона_tpl.php - вроде все везде стало работать.

Почему один и тот же код <i class="fa fa-map-marker"></i> на сайте доноре выдает значек f041, а на моем f3c5 ?

Аватар пользователя vlucas vlucas 7 октября 2020 в 9:05

Читать документацию хорошо тогда, когда знаешь о чем она написана.

Напомнило:
А сегодня в завтрашний день не все могут смотреть. Вернее смотреть могут не только лишь все, мало кто может это делать

Документация написана очевидно же о чём ))) о fontawesome

Аватар пользователя gun_dose gun_dose 7 октября 2020 в 9:10

У fontawesome есть куча версий. В каждую версию добавляют новые иконки, поэтому коды иконок могут меняться. Вот ты упоминаешь, что коды разные, а картинку они одну и ту же выводят или разные?

Аватар пользователя VasyOK VasyOK 7 октября 2020 в 14:18

Разные коды выводят похожие картинки, но не не одинаковые. А как сделать чтобы выводились одинаковые?

Аватар пользователя OldWarrior OldWarrior 7 октября 2020 в 16:05

Как сказал бы кэп: использовать одинаковые коды. Но боюсь, что я не понял вопроса.

Нужно отметить, что некоторые начертания символов Fontawesome доступны только в Pro-версии шрифта. И она платная.

PS.

VasyOK wrote: скопировал его себе в файл_шаблона_tpl.php - вроде все везде стало работать

Правильнее drupal_add_js() или #attached. Ну, вы поняли Smile

Аватар пользователя gun_dose gun_dose 7 октября 2020 в 16:07

Нужно использовать ту же самую версию шрифта. А ещё можно тут выбрать из разных шрифтов интересующие иконки, загрузить свои иконки, и выставить какие угодно коды для них

Аватар пользователя OldWarrior OldWarrior 7 октября 2020 в 16:12

У меня, кстати, подозрение, что VasyOK подключил свой кастомный набор символов Fontawesome. Судя по адресу https://kit.fontawesome.com/abrakadabra.js.

Аватар пользователя VasyOK VasyOK 7 октября 2020 в 16:41

OldWarrior wrote: Но боюсь, что я не понял вопроса.

HTML код

<i class="fa fa-map-marker"></i>

У меня отсюда https://kit-free.fontawesome.com/releases/latest/css/free-v4-shims.min.css выдает:

.fa.fa-map-marker::before {
    content: "\f3c5";
}

На сайте доноре этот же HTML код там со своего CSS файла подгружается

.fa-map-marker::before {
    content: "\f041";
}

Почему так происходит?

gun_dose wrote: Нужно использовать ту же самую версию шрифта.

А как узнать, какая версия шрифта на доноре?

OldWarrior wrote: У меня, кстати, подозрение,

Все, что делал - обо всем написал в теме.
Там конечно, не "абракадабра", а буквенный код. Наверное, к моему аку привязан.

<i class="fas fa-map-marker"></i> если я этот код использую - у меня так же, как на доноре. Но это уже (как понял) более поздняя версия fontawesome.

Аватар пользователя OldWarrior OldWarrior 7 октября 2020 в 17:54

VasyOK wrote: Почему так происходит?

Устаревшая версия шрифта. В 5-й версии была частично изменена таблица символов Fontawesome - некоторые старые переехали на другие позиции.

VasyOK wrote: Там конечно, не "абракадабра", а буквенный код. Наверное, к моему аку привязан.

Я не совсем про это. А про субдомен kits.
Точно уже не помню, но по-моему для кастомного и стандартного сета этот субдомен отличается.

VasyOK wrote: А как узнать, какая версия шрифта на доноре?

Попробовать открыть и посмотреть CSS и JS файлы с донора. В начале файла часто бывает заголовок-комментарий с номером версии.

Аватар пользователя Sevix Sevix 7 октября 2020 в 17:17

Советую отойти от шрифтов иконочных. С ними легко работотать, но на мобилах это пипец. Смотрите в сторону SVG.

Аватар пользователя Sevix Sevix 8 октября 2020 в 3:35

Нет. При всем уважении. Фонтавезоме - это шрифт. И он боится масштабирования. Свг в свою очередь - это растр. И его можно увеличивать до бесконечности.
И да. Некоторые браузеры вообще иконочные шрифты коряво отображают.

Аватар пользователя gun_dose gun_dose 8 октября 2020 в 8:04

Хз, я почти никогда не использую font awesome, потому что он очень много весит, а нужно из него от силы 10% иконок. Поэтому я из свг-шек компилирую через icomoon свой шрифт и с ним никогда нет никаких проблем. Иконочный шрифт - это в первую очередь шрифт, а нормальные шрифты не боятся масштабирования.

Аватар пользователя OldWarrior OldWarrior 8 октября 2020 в 13:07

Sevix wrote: Фонтавезоме - это шрифт. И он боится масштабирования.

Да вроде большинство форматов шрифтов вообще-то тоже векторные. И масштабируются без проблем. Растровые шрифты - это как правило display-only (экранные) шрифты и часто служат только для экранного представления своей векторной версии.

Аватар пользователя Sevix Sevix 8 октября 2020 в 13:24

Да если бы. Вот фонтавезоме при большом увеличении. Это примерно на ретине будет так выглядеть.

А еще какой нибудь сафари может показать просто прямоугольник с крестиком, вместо телефончика. Щас лень искать примеры.

Аватар пользователя Sevix Sevix 9 октября 2020 в 2:15

Да, действительно. Признаю свой косяк. Иконочные шрифты - это тоже вектор, и масштабирования они не боятся.

Ушел от их использования достаточно давно, помню, что причины были. Вот и напутал. А перестал их использовать примерно по следующим причинам:
1. Ограниченность выбора.
2. Отсутсвие индивидуальности.
3. По крайней мере на тот момент были действительно проблемы отображения в некоторых браузерах. Начиная с того, что иногда иконки просто не отображались. Иногда бывали рваные края. Иногда по высоте пиксели гуляют. Короче, это контроллировать очень сложно.

С SVG проблем никаких. Хоть любую простенькую иконку можно через css подключить, хоть логотип. Цвета любого элемента тоже меняются через стили. Очень удобно. Если кто то стоит перед выбором - попробуйте, не пожалеете.

Аватар пользователя gun_dose gun_dose 9 октября 2020 в 7:58

Третий раз пишу: есть сайт icomoon.io
Там прямо на сайт можно загрузить кучу свг-шек и сделать свой шрифт и будет индивидуальность)) плюс там же можно добавить в шрифт иконки из других шрифтов.

А свг не всегда так практичен, как иконки. Например, если иконка используется, как строчный элемент, то при использовании шрифта её просто вставил в текст и всё. А свгшку, вставленную в бэкграунд ещё придётся выравнивать по вертикали и подгонять размер.

Аватар пользователя OldWarrior OldWarrior 9 октября 2020 в 15:57

gun_dose wrote: А свгшку, вставленную в бэкграунд ещё придётся выравнивать по вертикали и подгонять размер.

Порой и со шрифтовыми иконками приходится возиться, выравнивая относительно базовой линии - особенно в случае верхнего регистра всей строки. Ну это так, к слову.

На мой взгляд, у SVG одно ощутимое преимущество - можно применять очень прикольные и необычные CSS-анимации непосредственно к контурам иконки.

Аватар пользователя gun_dose gun_dose 10 октября 2020 в 10:18

У свг есть много преимуществ и перед шрифтами, и перед растровой графикой. Это если говорить о возможности всячески модифицировать картинки через css и прочее. Но иконочный шрифт нужен там, где он нужен. Никто не ставит шрифт ради одной иконки. А вот когда 20-50 иконок прилетают всего за один запрос, который к тому же сразу кэшируется, это уже плюс к производительности. Кроме того, тот факт, что иконки завязаны на css-классы, позволяет легко управлять тем, какую иконку рендерить в тех или иных условиях.

Аватар пользователя Sevix Sevix 8 октября 2020 в 13:07

vlucas wrote:
А я просто инлайново SVG в css использую

Ага, я тоже. Самый смак. Можно прицепить к любому коду в любой CMS.