Подключение шрифтов к сайту

98
10 августа 2019, 19:50

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

Как подключал:

/*---1---*/
@font-face {
  font-family: 'Raleway';
  font-weight: 100;
  font-style: normal;
  src: local('Raleway Thin'), local('Raleway-Thin'),
    url("/font/Raleway-Thin.eot");
  src: local('Raleway Thin'), local('Raleway-Thin'),
    url("/font/Raleway-Thin.eot?#iefix") format("embedded-opentype"),
    url("/font/Raleway-Thin.otf") format("opentype"),
    url("/font/Raleway-Thin.svg") format("svg"),
    url("/font/Raleway-Thin.ttf") format("truetype"),
    url("/font/Raleway-Thin.woff") format("woff"),
    url("/font/Raleway-Thin.woff2") format("woff2");
}    
@font-face {
  font-family: "Raleway";
  font-weight: 400;
  font-style: normal;
  src: local('Raleway'), url("/font/Raleway-Regular.eot");
  src: local('Raleway'), url("/font/Raleway-Regular.eot?#iefix") format("embedded-opentype"), 
  /* все как в первом, имя файлов в соответствии с начертанием */ 
}
/*---2---*/
@font-face {
  font-family: "Raleway-ThinItalic";
  font-weight: normal;
  font-style: normal;
  src: url("/font/Raleway-Thin-Italic.eot");
  src: url("/font/Raleway-Thin-Italic.eot?#iefix") format("embedded-opentype"),
  /* все как в первом, имя файлов в соответствии с начертанием */
}
@font-face {
  font-family: "Raleway-Italic";
  font-weight: normal;
  font-style: normal;
  src: url("/font/Raleway-Regular-Italic.eot");
  src: url("/font/Raleway-Regular-Italic.eot?#iefix") format("embedded-opentype"), 
  /* все как в первом, имя файлов в соответствии с начертанием */ 
}

Как использовал:

<span style='font-size: 18px; font-family: "Raleway";'>Raleway-Regular</span><br>
<span style='font-size: 18px; font-family: "Raleway-Italic";'>Raleway-Italic</span><br>
<span style='font-size: 18px; font-family: "Raleway"; font-weight:100;'>Raleway-Thin</span><br>
<span style='font-size: 18px; font-family: "Raleway-ThinItalic";'>Raleway-ThinItalic</span><br>

Результат стал неожиданным когда открыл файл через телефон (iOS 12.1.2) и вот в чем отличие:

На ПК у всех 4х начертаний одинаковый размер.

Почему так могло произойти и у каких начертаний в итоге размер 18px? И в чем разница между методами подключения?

Подключил с гугла, результат тот же

/* latin */
@font-face {
  font-family: 'Raleway-ThinItalic';
  font-style: normal;
  font-weight: normal;
  src: local('Raleway Thin Italic'), local('Raleway-ThinItalic'), url(https://fonts.gstatic.com/s/raleway/v12/1Ptqg8zYS_SKggPNyCgwLrFoJfU.woff2) format('woff2');
}
/* latin */
@font-face {
  font-family: 'Raleway-Italic';
  font-style: normal;
  font-weight: normal;
  src: local('Raleway Italic'), local('Raleway-Italic'), url(https://fonts.gstatic.com/s/raleway/v12/1Ptsg8zYS_SKggPNyCg4TYFq.woff2) format('woff2');
}
/* latin */
@font-face {
  font-family: 'Raleway';
  font-style: normal;
  font-weight: 100;
  src: local('Raleway Thin'), local('Raleway-Thin'), url(https://fonts.gstatic.com/s/raleway/v12/1Ptsg8zYS_SKggPNwE44TYFq.woff2) format('woff2');
}
/* latin */
@font-face {
  font-family: 'Raleway';
  font-style: normal;
  font-weight: 400;
  src: local('Raleway'), local('Raleway-Regular'), url(https://fonts.gstatic.com/s/raleway/v12/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2');

После добавления <meta name="viewport" content="width=device-width, initial-scale=1"> все стало одним размером и судя по всему 18px был у курсива.

Остался только вопрос о разнице подключения шрифтов

Answer 1
  1. Подключение google fonts происходит 2-мя способами:

    • В head через link

       <link href="https://fonts.googleapis.com/css?family=Raleway:300,300i,400,500,500i" rel="stylesheet">
      
    • Либо в style

       <style>
        @import url('https://fonts.googleapis.com/css?family=Raleway:300,300i,400,500,500i');
       </style>
      

    Использование:

         body { font-family: 'Raleway', sans-serif; }
         i { font-weight: 300; font-style:italic; }
         p { font-weight: 500; }
    

    Все это на сайте подробно описано: fonts.google.com

  2. Если Вы добавляете шрифт, какого нет в google fonts, то рекомендую использовать генераторы шрифтов для веба.

    Например: font2web и fontsquirrel. Загружаете шрифт в .otf или .ttf формате и на выходе получаете готовые стили, которые копируете и вставляете в своем css. Естественно проверяя пути к Вашим шрифтам.

    На выходе получается такой код:

    @font-face {
      font-family: 'Raleway-Thin';
      src: url('../fonts/Raleway-Thin/Raleway-Thin.eot');
      src: local('Raleway-Thin'),
        url('../fonts/Raleway-Thin/Raleway-Thin.eot?#iefix') format('embedded-opentype'),
        url('../fonts/Raleway-Thin/Raleway-Thin.woff') format('woff'),
        url('../fonts/Raleway-Thin/Raleway-Thin.ttf') format('truetype');
      font-weight: 300;
      font-style: normal;
    }
    
    @font-face {
      font-family: 'Raleway-ThinItalic';
      src: url('../fonts/Raleway-ThinItalic/Raleway-ThinItalic.eot');
      src: local('Raleway-ThinItalic'),
        url('../fonts/Raleway-ThinItalic/Raleway-ThinItalic.eot?#iefix') format('embedded-opentype'),
        url('../fonts/Raleway-ThinItalic/Raleway-ThinItalic.woff') format('woff'),
        url('../fonts/Raleway-ThinItalic/Raleway-ThinItalic.ttf') format('truetype');
      font-weight: 300;
      font-style: italic;
    }
    .... 
    

    Использование:

    body { font-family: 'Raleway-Thin'; font-weight: 300; font-style: normal; }
    i { font-family: 'Raleway-ThinItalic'; font-weight: 300; font-style: italic; }
    
  3. Шрифт Raleway есть только для латиницы (английский текст, для русского не будет работать). Если Вы нашли где-нибудь Raleway Cyr, то вероятно это какой-то "самопальный" шрифт. И зачастую с такими шрифтами возникают проблемы при отображении. Возможно стоит поискать другой шрифт с поддержкой кириллицы.

READ ALSO
Проблема с JQuery Datepicker

Проблема с JQuery Datepicker

Почему-то даты перескакивают на понедельник,а не остаются на своих местах

121
Как скрыть меню при повторном клике jquery

Как скрыть меню при повторном клике jquery

Имеется вот такой псевдокод, при клике он показывает моё меню, но я хочу что бы при повторном он его опять скрывал, как это можно сделать?

110
Использование обобщенных методов типа generics в c#

Использование обобщенных методов типа generics в c#

прошу помочь разобраться в использовании обобщенных методовПроблема в следующем: я проверяю введенное значение, чтобы оно было больше нуля,...

122