Проблема с 2 шрифтами в css

sergey885
На сайте с 19.08.2002
Offline
248
491

Здравствуйте,

В css задано два шрифта:

@font-face {
font-family: 'englishfont';
src: url('englishfont.woff2') format('woff2'),
url('englishfont.woff') format('woff');
font-weight: normal;
font-style: normal;

}
@font-face {
font-family: 'hebrewfont';
src: url('hebrewfont.woff2') format('woff2'),
url('hebrewfont.woff') format('woff');
font-weight: normal;
font-style: normal;
}

Первый шрифт - englishfont разработан только для английского языка.

Второй шрифт - hebrewfont только для иврита.

Есть, например, класс:

p {
font-family: 'hebrewfont', 'englishfont'; }

Есть кусок текста внутри <p></p> на иврите, где иногда встречаются слова на английском.

Ивритский текст нормально отображается hebrewfont'ом, а вот английский - не отображается englishfont'ом, он заменяется на дефолтный браузерный.

Как заставить английский отображаться englishfont'ом? что я делаю не так?

интернет-маркетинг. стратегии развития веб-проектов.
S
На сайте с 12.02.2010
Offline
101
#1

Вы видимо не понимаете как работает font-family. Браузер смотрит наличие шрифта в системе и в подключеных асетах. Он не анализирует текст, для которого этот шрифт применяется.

Поэтому всё логично. Первым указан hebrewfont и он есть в ассетах, его браузер и применяет. Для тех глифов, что отсутствуют, он ищет шрифт того же семейства в системе. У вас кстати семейство не задано.

Поэтому в вашем случае можно обернуть английские слова например в <span> и задать правило:

p {font-family: 'hebrewfont'; }

p span {font-family: 'englishfont'; }

По другому никак, если только что то не придумали в последних правках css3, о чем не слышал.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий