- PVSM.RU - https://www.pvsm.ru -
Все мы знаем, что существует неофициальный, но распространенный в рунете (а в последнее время все чаще и в материальном мире) символ рубля, известный, как "знак Лебедева-Тарбеева [1]". Однако в силу того, что знак не имеет признанного статуса, и, как следствие, отсутствует в Unicode, его использование в веб-дизайне сопряжено с очевидными техническими сложностями, не раз уже обсуждавшимися на тематических ресурсах.
Не вдаваясь в подробности, позволю себе напомнить наиболее распространенные способы решения проблемы.
Так или иначе, ни один из перечисленных способов меня не удовлетворяет. Поэтому здесь я хочу предложить уважаемому хабросообществу новый вариант решения задачи, основанный на использовании CSS 3.0.
Если вы помните, в дореволюционной орфографии существовал знак, очень похожий на нужный нам: ять (Ѣ) [5]; он присутствует в большинстве популярных шрифтов. Все, что нам надо сделать, это отразить его по вертикали, что легко достигается посредством CSS-свойства transform:
<span style = "transform: scaleY( -1 )">Ѣ</span>
(Данный пример несколько упрощен, т.к. свойство transform на данный момент не работает без вендорных префиксов.)
Однако вспомним о семантике: что увидит здесь поисковой робот? Верно. Шлифуем решение, теперь «ять» добавляется через псевдокласс CSS before, а исходный HTML-фрагмент будет содержать читаемый текст «руб.», который будет скрываться в браузере.
.rur:before
{
content: "462";
-webkit-transform: scale( 1, -1 );
-moz-transform: scale( 1, -1 );
-ms-transform: scale( 1, -1 );
-o-transform: scale( 1, -1 );
transform: scale( 1, -1 );
}
.rur span
{
display: none;
}
<span class = "rur"><span>руб.</span></span>
Как видите, в теории все очень легко. К сожалению, на практике у данного решения существуют свои подводные камни.
На первый из них мы наткнемся, если попытаеся использовать шрифты с засечками (Times New Roman, к примеру): перекладина у яти в таком случае отобразится с засечками, направленными после отражения вверх. Для решения этой проблемы теоретически можно было бы использовать другой очень похожий символ, полумягкий знак (Ҍ) [6], начертание которого не предполагает засечек на перекладине, однако увы — в Times New Roman данный символ отсутствует, что делает всю затею бессмысленной. К сожалению, в этом случае придется довольствоваться начертанием, не подходящим к основному шрифту.
Второй неприятный момент возникает, если нам нужен относительно большой шрифт (16px и выше): в этом случае, перекладина оказывается уж очень низко относительно общей высоты литеры. Если такое начертание нас не устраивает, мы можем попытаться исправить ситуацию использованием строчной яти вместо прописной. Для придания ей более солидного вида снова воспользуемся свойством transform:
.rur:before
{
content: "463";
-webkit-transform: scale( 1.2, -1 );
-moz-transform: scale( 1.2, -1 );
-ms-transform: scale( 1.2, -1 );
-o-transform: scale( 1.2, -1 );
transform: scale( 1.2, -1 );
}
К сожалению, масштабирование литеры по горизонтали приведет к увеличению толщины линии, поэтому знак рубля будет выглядеть, как набранный более жирным шрифтом (но не дотягивающим до настоящего полужирного). Поэтому здесь нам придется выбирать меньшее из трех зол: низкую перекладину, узкую букву или жирное начертание.
Наконец, третья неприятность заключается в том, что при использовании шрифта, отличного от Arial, нам придется заниматься пиксельхантингом, т.к. перевернутая ять, скорее всего, окажется на уровне, отличном от остального текста — здесь на помощь нам снова придет transform:
.rur:before
{
content: "462";
-webkit-transform: scale( 1, -1 ) translateY( 1px );
-moz-transform: scale( 1, -1 ) translateY( 1px );
-ms-transform: scale( 1, -1 ) translateY( 1px );
-o-transform: scale( 1, -1 ) translateY( 1px );
transform: scale( 1, -1 ) translateY( 1px );
}
Предложенный метод не идеален, как и у приведенных в начале статьи, у него существуют свои достоинства и недостатки. Попытаемся их суммировать.
Таким образом, решение почти идеально подходит для использования со шрифтом Arial (и чуть хуже — для других шрифтов без засечек) небольшого размера; в остальных случаях целесообразность его применения дискуссионна.
Ну и конечно же демо [7]. Здесь хорошо видны все достоинства и недостатки метода.
Автор: malroc
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/veb-dizajn/7138
Ссылки в тексте:
[1] знак Лебедева-Тарбеева: http://ru.wikipedia.org/wiki/Символ_рубля#.D0.9D.D0.B0.D0.B8.D0.B1.D0.BE.D0.BB.D0.B5.D0.B5_.D1.80.D0.B0.D1.81.D0.BF.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D1.91.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B2.D0.B0.D1.80.D0.B8.D0.B0.D0.BD.D1.82.D1.8B
[2] раз: https://www.pvsm.ru/post/122191/
[3] два: https://www.pvsm.ru/post/48084/
[4] описано: http://www.artlebedev.ru/tools/technogrette/html/rouble/
[5] ять (Ѣ): http://ru.wikipedia.org/wiki/Ѣ
[6] полумягкий знак (Ҍ): http://ru.wikipedia.org/wiki/Ҍ
[7] демо: http://businesssites.su/rur.html
Нажмите здесь для печати.