Некоторые значки FA отображаются в FF, Chrome и Safari, но ни один браузер не отображает их все

Я использую шаблон от Pixelarity (https://pixelarity.com/эфирный), где реализован шрифт awesome v4. Поскольку я также хотел бы использовать «бренды», мне нужно было подключить v5.

После попытки объединить CSS FA v5 с CSS шаблона что-то сломалось (я не CSS-Pro).

В частности, есть сетка из шести кругов, и каждый из них содержит значок. Firefox отображает пять из них, Chrome — три, а Safari — только один значок. На этом сайте также есть несколько значков меньшего размера (социальные сети), и только Firefox может отображать их правильно.

У меня действительно закончились идеи, и я надеюсь, что кто-то из вас сможет мне помочь.

Имхо, сейчас бесполезно предоставлять весь мой код, так как он также виден через инструменты разработчика в браузерах, я прав? Пожалуйста, дайте мне знать, если кому-то нужны конкретные строки из моего *.css или *.html

Заранее большое спасибо.

Все самое лучшее из Германии, Марсель

Обновлено:

Я сделал, как было предложено. Пытался устранить неполадки и воспроизвести, где ошибка может быть связана с использованием моего локального apache (Mamp на Mac). Боюсь, у меня до сих пор нет никакого объяснения, но, по крайней мере, я нашел некую закономерность в поведении браузера.

С моим fontawesome.css, содержащим следующие строки, он работает

  • как шарм в firefox. Все значки отображаются правильно
  • частично в сафари. Отображаются только значки из Font Awesome 5 Brands
  • частично в хроме. Отображаются только значки из Font Awesome 5 Brands и Font Awesome 5 Free (solid)
  .sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.sr-only-focusable:active, .sr-only-focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }
@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/fa-brands-400.eot");
  src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); }

.fab {
  font-family: 'Font Awesome 5 Brands';
  font-weight: 400;  
@font-face 
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/fa-brands-400.eot");
  src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); }

.far {
  font-family: 'Font Awesome 5 Free';
  font-weight: 400; 
@font-face 
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/fa-regular-400.eot");
  src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); }

.fas {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900; 
@font-face 
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/fa-regular");
  src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); }

Если я сейчас удалю .fas, .far и .fab, чтобы код выглядел следующим образом, он работает

  • частично в фаерфоксе. Отображаются только значки из Font Awesome 5 Brands и Font Awesome 5 Free (solid).
  • как шарм в сафари. Все значки отображаются правильно.
  • частично в хроме. Отображаются только значки из Font Awesome 5 Brands и Font Awesome 5 Free (solid).
.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.sr-only-focusable:active, .sr-only-focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }
@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/fa-brands-400.eot");
  src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); }

@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/fa-regular-400.eot");
  src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); }

@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/fa-regular");
  src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); }

Я следовал инструкциям с сайта fontawesome.com по включению всего шрифта в *.css страницы, а также трижды проверял пути к шрифтам.

Добавление скобки здесь и хром работает, удаление скобки там и сафари работает... Я полностью застрял и понятия не имею, что делать, так как я понятия не имею, почему три разных браузера ведут себя по-разному.

«Сейчас бесполезно предоставлять весь мой код, поскольку он виден через инструменты разработчика» ... ну, это неправда, потому что ссылка на ваш сайт изменится/обновится/переместится, и тогда этот вопрос не поможет людям в будущем. А сейчас он даже не загружается, лол
zgood 11.02.2019 21:38

Хорошо, я вижу. Но мой main.css содержит ~3,7 тыс. строк, мой fontawesome.css ~4,2 тыс. и мой index.html ~800 строк. Есть ли умный способ предложить вам эти файлы здесь?

Linsenschisdre 11.02.2019 22:02

Попробуйте изолировать проблему в небольшом образце воспроизводимого кода (вы можете включить такие библиотеки, как FontAwesome, в качестве ссылки на cdn). Часто при этом вы решите проблему самостоятельно, это часть процесса отладки. И если вы все еще не можете решить, зайдите сюда и опубликуйте то, что вы пробовали.

zgood 11.02.2019 22:12

Нет ошибок в различных консолях разработчика вашего браузера? Он может правильно загружать файлы шрифтов и не показывает ошибок CSS?

Nicholas Hirras 19.02.2019 22:05

Может быть, вы можете вставить свой код во что-то вроде codepen, plnkr или jsfiddle?

Nicholas Hirras 19.02.2019 22:07
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
5
690
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сомневаюсь, что кто-то окажется таким же тупым, как я, но тем не менее сообщаю об ошибке в моем коде.

Font Awesome состоит из трех бесплатных шрифтов.

  • Бренды ФА
  • ФА Регулярный
  • ФА Твердый

В *.css они вызываются с помощью @font-face, а внутри разделяются с помощью font-family: <Font Name>.

Если вы посмотрите на мой предыдущий код, каждый шрифт (фирменный, обычный и сплошной) вызывается отдельно с отдельным @font-face-аргументом. И вот тут происходит волшебство! Поскольку FA Regular и FA Solid являются частью семейства Font Awesome 5 Free, некоторые браузеры, похоже, не могут найти правильный шрифт, если два разных шрифта объявлены принадлежащими к одному семейству. Причина, по которой бренды FA отображались правильно, заключается в том, что их семейство называется Font Awesome 5 Brands.

Короче говоря. Снаружи

@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/fa-brands-400.eot");
  src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); }

@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/fa-regular-400.eot");
  src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); }

@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/fa-regular");
  src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); }

я сделал

@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/fa-brands-400.eot");
  src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); }

@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 400, 900;
  src: url("../fonts/fa-regular-400.eot");
  src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg");

  src: url("../fonts/fa-solid-900.eot");
  src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); }

И теперь это прекрасно работает во всех браузерах.

Спасибо всем вашим советам и помощи!

Имейте хороший, Марсель

Другие вопросы по теме