Я изменил свой шрифт на Arial, но установил для шрифтов заголовков собственный шрифт. Я помещаю свои шрифты в папку с именем MYFONT, которая находится в папке с именем fonts, которая находится в моем корневом каталоге. (корневой каталог -> шрифты -> MYFONT -> файлы шрифтов) Вот мой код:
CSS
body {
font-family: 'Arial', sans-serif;
}
@font-face {
font-family: 'MYFONT';
font-style: normal;
font-weight: 600;
font-display: optional;
src: url(fonts/MYFONT/MYFONT.woff2) format('woff2'),
url(fonts/MYFONT/MYFONT.woff) format('woff'),
url(fonts/MYFONT/MYFONT.svg) format('svg'),
url(fonts/MYFONT/MYFONT.eot) format('eot');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
h1, h2, h3 {
font-family: 'MYFONT', sans-serif;
}
HTML
<h1>MYFONT</h1>
<h2>MYFONT</h2>
<h3>MYFONT</h4>
<p>ARIAL</p>
Когда я впервые открываю страницу на новом устройстве или когда нажимаю Cmd + Shift + R (перезагрузка страницы без кеша браузера), вся страница отображается в формате Arial. В чем может быть проблема? Я хочу, чтобы <h1>, <h2>, and <h3>
использовал шрифт MYFONT.
**Обновлено:
Я попытался удалить часть "sans-serif
" в
h1, h2, h3 {
font-family: 'MYFONT', sans-serif;
}
и при первой загрузке/загрузке без кеша шрифт превратился в шрифт с засечками по умолчанию.**
Что произойдет, если вы просто добавите font-style: normal;
к определению h1, h2, h3?
что ты имеешь в виду
@DuncanLeung Прямо сейчас у вас есть h1, h2, h3 {font-family: 'MYFONT', sans-serif;}
. Вы пытались указать css всегда выбирать нормальный вес шрифта, как в моем комментарии выше? В качестве альтернативы вы можете настроить jsfiddle с абсолютной ссылкой на шрифт (например, API шрифтов Google). Таким образом, мы можем безопасно торговаться с вашим кодом.
удалите эти источники svg
и eot
(svg не был допустимым форматом в течение многих лет, а eot стал мертвым форматом, когда MS убила IE8 более 3 лет назад).
Если вы укажете правило @font-face
с определенным весом, то ваш шрифт будет работать только в в этом весе. Поэтому либо удалите font-weigth: 600
из объявления начертания шрифта, либо добавьте font-weight: 600
в правило h1,h2,h3
. @font-face
предназначен для загрузки определенных ресурсов шрифта для определенных комбинаций семейства/стиля/жирности, и чем конкретнее объявление шрифта, тем более конкретным должен быть ваш обычный CSS, чтобы правило шрифта также срабатывало.
моя проблема не в весе шрифта, а в самом шрифте.
Круто: все равно возьми это на вооружение. Если вы подозреваете, что это шрифт, очевидный способ действий — сначала получить свежую копию шрифта из источника, который, как вы знаете, является хорошим (и не забудьте включить format("woff")
/format("woff2")
для ваших двух источников — добавьте только woff/woff2, больше ничего не добавляйте (нет svg, eot, ttf или otf).
@DuncanLeung Этот вопрос кажется хорошим уроком по устранению неполадок в коде. Обратите внимание, что здесь произошло следующее: 1. A/B-тест на font-style
(нет), 2. A/B-тест на font-weight
(нет), 3. A/B-тест на font-display
(Бинго! Проблема решена.) Красиво и аккуратно!
Я наконец-то решил это, видимо, это была проблема font-display: optional;
, я изменил его на font-display: swap;
, и теперь он работает.
Вы можете использовать !important в тегах h1,h2,h3