@font-face svg не работает должным образом в Chrome?
у меня проблема с определенным шрифтом и тем, как он отображается в Chrome.
Firefox отображает шрифт с помощью ТТФ.
Chrome не использует antialias, а шрифт слишком "острый" и уродливый.
это объявление css, которое я использовал
@font-face {
font-family: 'HelveticaNeueLT Std Thin';
src: url(../fonts/h2.eot);
src: url(../fonts/h2.svg#test) format('svg'),
url(../fonts/h2.woff) format('woff'),
url(../fonts/h2.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
Я пришел к выводу, что проблема заключается в файле объявления/шрифта svg. Если я вообще не использую хэш-тег и оставляю его как только .svg, он делает antialiased но на a различная линия-высота, с немножко располагать. Если я добавлю .СВГ#ничего, это не сглаживания его на всех, и выглядит некрасиво.
любые предложения приветствуются, чтобы помочь мне исправить это довольно неприятная проблема.
PS: сглаживание Windows в порядке, я проверил это. Я также попробовал @media screen and (-webkit-min-device-pixel-ratio:0)
объявление только для шрифта svg, без успеха.
Я понимаю, что это может быть репост, но, попробовав все решения из связанных вопросов, я немного в отчаянии.
5 ответов
чтобы получить webfonts для рендеринга с хорошей сглаживания в Chrome в Windows, вы должны использовать этот формат в декларации шрифта:
@font-face {
font-family: 'Futura';
src: url('futura.eot');
src: url('futura.eot?#iefix') format('embedded-opentype'),
url('futura.woff') format('woff'),
url('futura.ttf') format('truetype'),
url('futura.svg#futura') format('svg');
font-weight: normal;
font-style: normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'Futura';
src: url('futura.svg#futura') format('svg');
}
}
в принципе, вам нужно заставить Chrome использовать формат шрифта SVG. Вы можете сделать это, переместив url-адрес.версия svg в верхней части, однако Chrome на Windows имел проблемы с испортить макет при этом (до и включая версию 30). Переопределяя объявление шрифта с помощью запроса мультимедиа, эти проблемы разрешенный.
также: иногда базовая позиция не совпадает между шрифтами OpenType и шрифтами SVG, но вы можете настроить это, просто отредактировав файлы шрифтов SVG. Шрифты SVG основаны на xml, и если вы посмотрите на объявление
<font-face units-per-em="2048" ascent="1900" descent="-510" />
вы можете изменить значение для ascent и получить его в соответствии с другими версиями формата шрифта.
Как предлагают Лили и белка шрифта,ваш шрифт SVG почти всегда должен находиться в нижней части вашего списка @font-face
источник. Вы не хотите, чтобы браузер использовал шрифт SVG, если он не может использовать что-либо еще.
причина этого в том, что шрифты SVG очень плохо поддерживаются, и поддержка уменьшается. По состоянию на этот пост (2015) шрифты SVG являются больше не поддерживается Chrome (38) и поддерживаются только Safari 8, iOS Safari 8.1 и браузер Android 37. http://caniuse.com/#feat=svg-fonts
Edit: по состоянию на февраль 2016 года Android Browser 47 больше не поддерживает шрифты SVG. Safari и iOS Safari по-прежнему поддерживают их и кажутся единственными браузерами, которые это делают.
при ссылке на SVG-файлы в @font-face идентификатор (#) в пути к файлу указывает элемент внутри .файл SVG. Чтобы найти правильный код, вы можете открыть его в редакторе и проверить <font>
тег.
например:
@font-face {
font-family: 'latobold';
src: url('../fonts/lato/lato-bold-webfont.eot');
src: url('../fonts/lato/lato-bold-webfont.svg#latobold') format('svg'),
url('../fonts/lato/lato-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/lato/lato-bold-webfont.woff') format('woff'),
url('../fonts/lato/lato-bold-webfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
относится к:
<font id="latobold" horiz-adv-x="1187" >
шрифт белка webfont генератор организует @font-face
CSS вот так:
@font-face {
font-family: 'HelveticaNeueLT Std Thin';
src: url('../fonts/h2.eot');
src: url('../fonts/h2.eot?#iefix') format('embedded-opentype'),
url('../fonts/h2.woff') format('woff'),
url('../fonts/h2.ttf') format('truetype'),
url('../fonts/h2.svg#h2') format('svg');
font-weight: normal;
font-style: normal;
}
больше информации о почему заказ важен здесь:http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/
Если это все еще дает вам проблемы, попробуйте использовать вышеупомянутый генератор, выберите опцию эксперта и поиграйте с различными настройками (особенно при рендеринге и X-height).
попробуйте эту реализацию @font-face
@font-face {
font-family: 'OpenSans';
src: url('fonts/OpenSans-Regular-webfont.eot');
src: url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
url('fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
font-weight: normal;
font-style: normal;
}
h1 {
font-family: 'OpenSans';
font-weight: 300%;
}
для получения дополнительной информации ознакомьтесь с этим примером https://github.com/ttibensky/BulletProof-font-face-implementation