Проблемы с отображением веб-шрифта Chrome OS (инкогнито) и Linux Chrome

Я столкнулся со странной проблемой при тестировании веб-шрифтов на разных платформах. Я работал над проблемами рендеринга шрифтов Windows Chrome, используя проверку Javascript navigator.appVersion в сочетании с медиа-запросом webkit ( поскольку Chrome и Safari — это Webkit, а Safari в Windows можно исключить), и в процессе возникла новая проблема.

Я тестирую в режиме инкогнито как быстрый способ просмотра страницы без сохраненных изображений и т. д., но для меня это было новым.

Я добавил отладку консоли как до, так и после действия в предложении else, которое следует за if(navigator.appVersion.indexOf("Win")>-1, поэтому я вижу, что цикл не прерывается каким-либо неправильным синтаксисом между ними, и никаких ошибок не возникает.

Я думал, что это может быть ошибка в Chrome OS, но в Linux Mint шрифты не загружаются ни в одном из типов окон Chrome. Очистка кешей, файлов cookie и файлов изображений не влияет ни на одну из ОС.

Скриншоты:

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

Если кто-то хочет проверить это самостоятельно, вот страница на скриншотах.

Я также попытался войти в GitHub и свою учетную запись Google в режиме инкогнито на случай, если у меня возникнет проблема, связанная с разрешениями, но это ничего не изменило, и, несмотря на это, это все еще не объясняет несоответствие с Windows (работает как в режиме инкогнито, так и в обычном режиме) . Файлы хранятся в общедоступном репозитории GitHub, и я определенно могу получить к ним доступ в браузере даже в ситуациях без рендеринга шрифтов на моем сайте.

<script>
if (navigator.appVersion.indexOf("Win")>-1) {
    console.log("Win test")
    chromeQuery = document.createElement('style');
    chromeQuery.setAttribute('type','text/css');
    chromeQuery.innerHTML = "@media screen and (-webkit-min-device-pixel-ratio:0) { /* Chrome-specific SVG font */ @font-face{ font-family: \"SEGOEUIL\"; src: local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.svg') format(\"svg\"), local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.woff') format('woff'), local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.ttf') format('truetype'); font-weight: normal; } @font-face{ font-family: \"SEGOEUIL\"; src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.svg') format(\"svg\"), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.woff') format('woff'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.ttf') format('truetype'); font-weight: bold; font-style: normal; } @font-face{ font-family: \"SEGOEUIL\"; src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.svg') format(\"svg\"), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.woff') format('woff'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.ttf') format('truetype'); font-style: italic; } }";
    document.querySelector('head').appendChild(chromeQuery);
}
else {
    fontload = document.createElement('style');
    fontload.setAttribute('type','text/css');
    fontload.setAttribute('id','fontload')
    fontload.innerHTML = "@font-face{ font-family: \"SEGOEUIL\", \"Helvetica Neue\", Arial, sans-serif; src: local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.eot'); src: local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.eot?#iefix') format('embedded-opentype'), local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.woff') format('woff'), local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.ttf') format('truetype'), local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.svg') format('svg'); font-weight: normal; } @font-face{ font-family: \"SEGOEUIL\", \"Helvetica Neue\", Arial, sans-serif; src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.eot'); src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.eot?#iefix') format('embedded-opentype'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.woff') format('woff'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.ttf') format('truetype'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.svg') format('svg'); font-weight: bold; font-style: normal; } @font-face{ font-family: \"SEGOEUIL\", \"Helvetica Neue\", Arial, sans-serif; src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.eot'); src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.eot?#iefix') format('embedded-opentype'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.woff') format('woff'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.ttf') format('truetype'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.svg') format('svg'); font-style: italic; }";
    document.querySelector('head').appendChild(fontload);
    console.log('loaded')
}
</script>
<noscript><style id="fontload" type="text/css">

@font-face{ 
        font-family: "SEGOEUIL", "Helvetica Neue", Arial, sans-serif;
        src: local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.eot');
        src: local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.eot?#iefix') format('embedded-opentype'),
             local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.woff') format('woff'),
             local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.ttf') format('truetype'),
             local('Segoe UI Light'), url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/SEGOEUIL.svg') format('svg');
        font-weight: normal;
    }

    @font-face{ 
        font-family: "SEGOEUIL", "Helvetica Neue", Arial, sans-serif;
        src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.eot');
        src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.eot?#iefix') format('embedded-opentype'),
             url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.woff') format('woff'),
             url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.ttf') format('truetype'),
             url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuisb.svg') format('svg');
        font-weight: bold;
        font-style: normal;
    }

    @font-face{ 
        font-family: "SEGOEUIL", "Helvetica Neue", Arial, sans-serif;
        src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.eot');
        src: url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.eot?#iefix') format('embedded-opentype'),
             url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.woff') format('woff'),
             url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.ttf') format('truetype'),
             url('https://raw.githubusercontent.com/lmmx/websiteresources/master/fonts/weblysleekuili.svg') format('svg');
        font-style: italic;
    }

</style></noscript>

Редактировать Я не вижу ни одного шрифта, поступающего на панель ресурсов, поэтому я не вижу, как выглядит успех — я вижу то, что кажется шрифтом открытого типа, показывающим какую-то (латентность? ) хотя ошибка, которая может иметь значение?

введите здесь описание изображения (Исходный код Pro не используется, а шрифт значков не предназначен для текста)


person Louis Maddox    schedule 13.05.2014    source источник


Ответы (1)


Несколько вещей выглядят неправильно:

  1. Внедренные вами стили окружены тегами <noscript>, поэтому ваши шрифты будут загружаться только при отключенном JavaScript.
  2. Ваше правило @font-face должно сопоставлять ваш пользовательский шрифт только с одним семейством. Итак, font-family: "SEGOEUIL"; вместо font-family: "SEGOEUIL", "Helvetica Neue", Arial, sans-serif;
  3. Первое правило пытается использовать локально установленную версию SEGOEUIL, второе всегда загружается с githubusercontent.com. Таким образом, внешний вид шрифта может измениться, если пользователь установил другую версию.
  4. Чтобы избежать неожиданных результатов, установите font-weight и font-style для всех трех объявлений.

Изменение этого исправляет страницу в Chrome.

person RoelN    schedule 14.05.2014
comment
Уверены ли вы? 1. было преднамеренно, в качестве запасного варианта, рекомендовано здесь; 2. это резервные шрифты, это обычная практика; 3. не использует локально установленный шрифт, слово local задает имя шрифта... 4. отсутствие установки веса шрифта применяет стиль к любому весу шрифта. Вы уверены в любом из этих советов...? - person Louis Maddox; 14.05.2014
comment
Извините, похоже, я получил локально сохраненную версию шрифта, и это объясняет несоответствия. Фу! Очевидно, мне нужно изменить его на символ смайлика... Привет @RoelN ☺ - person Louis Maddox; 14.05.2014
comment
1. Да, для шрифтов SVG, но не для всего объявления @font-face 2. Стек шрифтов рекомендуется, когда вы применяете шрифт, а не когда вы объявляете его с помощью @font-face. 3. Так и есть, как вы видели :) 4. Это было просто предложение избегать этого, казалось бы, нестабильного CSS. У меня не установлен SERGOEUIL, и он не работает в моей настройке Chrome/Windows! - person RoelN; 14.05.2014
comment
Большое спасибо за совет, я все еще работаю над этим - не знал, что веб-шрифты будут такими сложными! Решенный Chrome благодаря этому, но веб-шрифты Firefox имеют междоменную политику D: я обновлю этот пост, когда я достигну окончательной настройки - person Louis Maddox; 14.05.2014