Использование замены символов шрифта в CSS или JS
Я пытаюсь получить доступ к некоторым альтернативным символическим символам, используя этот шрифт в данный момент.
Субъекты символов шрифта названы так: "A.alt", "A.alt1", "B.alt" и т. Д., Поэтому у них нет юникода, к которому нужно обращаться.
Я нашел это, но при использовании Inspect Element CSS-свойство просто возвращает ошибку "Unknown Property Name". Есть ли другой способ сделать это?
<html>
<meta charset="ISO-8859-1">
<title>Glyph-test</title>
<style>
h1 {
font-family: Baron neue;
}
h1 span.A-alt {
font-variant-alternates: character-variant(A.alt);
}
</style>
<h1>Testing alternative <span class="A-alt">A</span></h1>
</html>
2 ответа
Вместо font-variant-alternates
ты можешь использовать font-feature-settings
чтобы достичь этого. Установите это "salt"
или же "salt" 2
или же "salt" 3
(и так далее) в зависимости от того, какую альтернативу вы хотите использовать.
Ваш код CSS может выглядеть так:
h1 span.A-alt {
font-feature-settings: "salt" 2;
}
Вы можете сделать это без дополнительных пролетов:
@font-face {
font-family: 'MyFont';
src: local('MyFont');
}
@font-face {
font-family: 'MyFont-Alt';
font-feature-settings: "salt";
/* Above can vary depending on the font. For example:
font-feature-settings: "aalt";
font-feature-settings: "ss01";
*/
src: local('MyFont');
unicode-range: U+004d,U+004f ; /* Unicode values of the original characters. */
}
body{
font-family: 'MyFont-Alt','MyFont';
}
На мой взгляд, лучший способ - использовать data-
атрибуты HTML5 .
В вашем случае вы можете реализовать это так:
<html>
<meta charset="ISO-8859-1">
<title>Glyph-test</title>
<style>
h1 {
font-family: Baron neue;
}
h1 span.A-alt {
font-variant-alternates: character-variant(attr(data-variant));
}
</style>
<h1>Testing alternative <span class="A-alt" data-variant="A.alt">A</span></h1>
</html>
Вы можете реализовать character-variant(attr(data-variant))
как бы вы этого ни хотели, но вы правильно поняли. Значение, которое вы передаете через HTML и используете то же значение в вашем CSS, используя attr(data-name)