Специфической особенностью рунета является проблема с кодировками страниц и поддержкой кириллицы в шрифтах. Чтобы не возникало проблем с разнообразными кодировками символов, умные люди придумали , который позволяет сочетать в одном шрифте символы нескольких языков. Таким образом для русскоязычных страниц нужно использовать только Unicode шрифты поддерживающие кириллицу.
Ниже приведена таблица соответствий шрифтов.
Windows | Mac OS | Unix/Linux | Родовое семейство |
---|---|---|---|
Arial Black | Helvetica CY | Nimbus Sans L | Sans-serif |
Arial | Helvetica CY | Nimbus Sans L | Sans-serif |
Comic Sans MS | Monaco CY | * (см. ниже) | cursive |
Courier New | * (см. ниже) | Nimbus Mono L | Monospace |
Georgia | * (см. ниже) | Century Schoolbook L | Serif |
Impact | Charcoal CY | * (см. ниже) | Sans-serif |
Times New Roman | Times CY | Nimbus Roman No9 L | Serif |
Trebuchet MS | Helvetica CY | * (см. ниже) | Sans-serif |
Verdana | Geneva CY | DejaVu Sans | Sans-serif |
* в колонке напротив шрифта означает, что родных кириллических эквивалентов Windows шрифта у операционной системы не имеется. Но в то же время есть большая вероятность, что в операционной системе установлен непосредственно сам этот шрифт.
Например, если основным текстом макета является Arial, находим в табличке этот шрифт и в CSS пишем соответствующую ему строчку:
Body { font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif; }
Эта запись означает, что если у пользователя есть шрифт Arial (а он есть у всех пользователей Windows и всех пользователи Mac OS X), то страница отобразися этим шрифтом. Если же у пользователя нет этого шрифта, то страничка русскоязычного пользователя Mac OS 9 точно отобразится стандартным системным шрифтом Helvetica CY, а у пользователя Unix/Linux отобразися шрифтом Nimbus Sans L который установлен у 90% пользователей Unix/Linux. Если же пользователь Unix/Linux принадлежит в тем 10%, у которых нет этого шрифта, то страница отобразится тем шрифтом с засечками, который установлен для просмотра Web-страниц по умолчанию.
Образцы подобных линеек можно увидеть, например, в Dreamweaver.
Начинающие верстальщики выбирают линейку по первому шрифту не задумываются, что же означает эта длинная строчка. Некоторые даже стирают все, кроме первого шрифта, лишая удовольствия увидеть замысел дизайнера всех пользователей, у которых по каким-то причинам не установлен этот шрифт.
Но мы то теперь знаем, что означает эта строка, не правда ли? И уже можем правильно ее использовать.
Но почему же строка построенная нами так сильно отличается от привычного по Dreamweaver:
Body { font-family: Arial, Helvetica, sans-serif; }
Кроме того, что в таблице учитываются шрифты Unix/Linux, там еще после обычного Helvetica идет какой-то странный значок CY. Давайте разбираться, что же это такое!
До выхода Mac OS X эта линейка имела следующее значение: для пользователей Windows отображаем страницу Arial, для пользователей Mac OS 9 — стандартным шрифтом Helvetica, а остальные видят страницу с системным шрифтом без засечек, настроенным по умолчанию в браузере. Но опять же немаловажный нюанс! У стандартного Mac OS 9 шрифта Helvetica нет кириллицы! Для русскоязычной страницы это означало следующее: для пользователей Windows отображаем страницу Arial, для пользователей Mac OS 9 — стандартным шрифтом Helvetica, который выводит нечитаемую информацию, а остальные видят страницу с системным шрифтом без засечек, настроенным по умолчанию в браузере.
Для правильного отображения этого набора у пользователей Mac OS 9 вместо некириллизированной Helvetica, имеет смысл указывать такой же стандартный для Mac OS 9 шрифт Helvetica CY, содержащий кириллицу.
Прочтение линеек после выхода Mac OS X изменилось. Теперь для Windows/Mac OS X указывается один общий стандартный шрифт. А если мы хотим, чтобы замысел дизайнера смогли увидеть пользователи Mac OS 9, для них нужно в линейке шрифтов прописать шрифт содержащий кириллицу.
Таким образом хотя и не существует безопасных шрифтов, существуют безопасные линейки шрифтов. Их еще называют шрифтовыми CSS стеками . В эти линейки помимо стандартных шрифтов Windows/Mac OS X можно включать также эквивалентные шрифты из стандартного набора Mac OS 9 (которая не содержит по умолчанию «безопасных» шрифтов) и распространенных шрифтов Unix/Linux.
Любой верстальщик рано или поздно сталкивается с моментом, когда дизайнер использует в макете шрифт, не входящий в перечень «безопасных»;. Но это еще не повод бить тревогу! Например, дизайнеры очень часто используют на макетах шрифт Tahoma, который не входит в этот перечень. Правильно построенная линейка шрифтов открывает возможность использовать не только Tahoma, но и другие шрифты. Все большее количество дизайнеров пользуются этой возможностью и грамотный верстальщик должен об этом знать.
Ниже приведена дополнительная таблица шрифтов, которые не входят в перечень «безопасных», но могут использоваться на макетах.
Windows | Mac OS | Родовое семейство |
---|---|---|
Lucida Console | Monaco | Monospace |
Lucida Sans Unicode | Lucida Grande | Sans-serif |
Tahoma | Geneva CY | Sans-serif |
А если без кириллицы?
Для англоязычных текстов вышеприведенные таблицы имеют несколько другой вид.
Windows | Mac OS | Unix/Linux | Родовое семейство |
---|---|---|---|
Arial Black | Gadget | Nimbus Sans L | Sans-serif |
Arial | Helvetica | Nimbus Sans L | Sans-serif |
Comic Sans MS | Monaco | TSCu_Comic | cursive |
Courier New | Courier | Nimbus Mono L | Monospace |
Georgia | * (см. ниже) | Century Schoolbook L | Serif |
Impact | Charcoal | Rekha | Sans-serif |
Times New Roman | Times | Nimbus Roman No9 L | Serif |
Trebuchet MS | Helvetica | Garuda | Sans-serif |
Verdana | Geneva | DejaVu Sans | Sans-serif |
Для шрифтов Arial, Courier New и Times New Roman при составлении линеек лучше указывать сначала шрифт для Unix/Linux, а затем для Mac OS. Это связанно с некоторой кривостью набора Linux шрифтов X11 core fonts set.
Шрифты, которые не входят в перечень «безопасных», но могут использоваться на макетах, лучше определять шрифтовыми CSS стеками на основе этой таблицы.
Windows | Mac OS | Unix/Linux | Родовое семейство |
---|---|---|---|
Lucida Console | Monaco | — | Monospace |
Lucida Sans Unicode | Lucida Grande | Garuda | Sans-serif |
Palatino Linotype | Palatino | Garuda** | Sans-serif |
Tahoma | Geneva | Kalimati | Sans-serif |
Прочерк в графе Unix/Linux обозначает, что пользователи этих ОС скорее всего увидят на странице шрифт, установленный для отображения страниц по умолчанию.
Выбор стандартного шрифта , используемого конкретной операционной системой, может улучшить производительность. Это относится к любому «безопасному для интернета » шрифту. Польза «системных » шрифтов заключается в том, что они совпадают с теми, которые уже использует операционная система, поэтому пользователю будет комфортно читать текст.
Классификация системных шрифтов :
ОС | Версия | Системный шрифт |
Mac OS X | El Capitan | San Francisco |
Mac OS X | Yosemite | Helvetica Neue |
Mac OS X | Mavericks | Lucida Grande |
Windows | Vista | Segoe UI |
Windows | XP | Tahoma |
Windows | 3.1 до ME | Microsoft Sans Serif |
Android | Ice Cream Sandwich (4.0)+ | Roboto |
Android | Cupcake (1.5) до Honeycomb (3.2.6) | Droid Sans |
Ubuntu | Все версии | Ubuntu |
Переходим к коду
Вступление показывает, что с появлением новых версий операционных систем приходят новые шрифты, а с ними и необходимость обновления стандартных шрифтов для сайта .
Метод 1: Системные шрифты на уровне элемента
Chrome и Safari недавно представили «system-ui » — универсальное семейство шрифтов, которое может быть использовано вместо «-apple-system » и «BlinkMacSystemFont «. Один из методов применения системных шрифтов - вызвать их напрямую для элемента, используя свойство font-family .
GitHub использует этот метод на своем сайте, применяя системные шрифты в body :
/* Системные шрифты используются GitHub */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; }
И Medium и WordPress admin используют схожий подход. Больше всего поддерживается Oxygen Sans (создан для операционной системы GNU+Linux ) и Cantarell (создан для операционной системы GNOME ).
Данный пример также демонстрирует поддержку некоторых типов смайликов и символов :
/* Системные шрифты, как их использует Medium и WordPress */ body { font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; }
Примечание: Этот метод можно использовать только для font family CSS стандартных шрифтов вместо более короткого font.
Метод 2: Стеки системных шрифтов
Ограничение первого метода заключается в необходимости вызывать полный стек шрифтов каждый раз, когда он применяется для элемента. А это может раздуть код, в зависимости от того, где и как оно используется.
Альтернативный метод, при котором системные шрифты объявляются с помощью свойства @font-face . Его преимущество заключается в том, что можно объявить шрифты один раз и затем применять их со свойством font-family вместо длинного списка шрифтов каждый раз.
Начиная верстать макет, необходимо в частности указать в CSS используемые на странице шрифты. Зачастую различными шрифтами дизайнер набирает не только основной текст страницы, но и разнообразные заголовки, логотипы, вензеля:
Хороший дизайнер, как и хороший верстальщик, знает, что браузер может использовать для отображения страницы только те шрифты, которые установлены на компьютере у пользователя. То есть шрифты можно условно разделить на две категории:
- Шрифты, которые без проблем отобразятся у подавляющего большинства пользователей.
- Шрифты, которые у достаточно большой группы пользователей отсутствуют.
Если дизайнер использовал шрифты второй категории для создания, наример, логотипа или крупных статичных заголовков, можно не колеблясь использовать прием . Недостаток применения этого приема — негибкость. В случае изменений в тексте придется переделывать картинку и менять CSS (например, если размеры новой картинки не совпадут со старой).
Можно сказать, что опасность применения приема напрямую зависит от вероятности смены текста. Поэтому делать, например, общий текст страницы нестандартными шрифтами нельзя! Грамотный дизайнер так никогда не поступит. А если дизайнер попался зеленый, хороший верстальщик просто обязан исправить его ошибку — в верстке подменить данный шрифт максимально похожим стандартным.
Но как же отличить шрифты первой группы от второй? Ясно что на набор шрифтов, установленный непосредственно на твоем компьютере опираться нельзя! Давайте разбираться.
Стандартные шрифты
Стандартные шрифты — это набор шрифтов, устанавливаемый вместе с операционной системой. Поскольку операционные системы бывают разные, то и набор шрифтов у них разный. Перечень стандартных шрифтов разных версий Windows можно посмотреть, например, в статье Стандартные шрифты Windows , а перечень стандартных шрифтов Mac OS на странице Шрифты, поставляемые с Mac OS . Что касается Unix/Linux операционных систем то единый набор шрифтов у них отсутствует. Многие пользователи Linux используют набор шрифтов DejaVu, в частности на Ubuntu они установлены по умолчанию. Согласно статистике http://www.codestyle.org у многих Unix/Linux пользователей также установлены наборы шрифтов URW, Free и другие. Согласно этой же статистике, больше 60% пользователей Unix/Linux имеют на своем компьютере шрифты набора Core fonts for the Web, который до 2002 года был официально доступен для бесплатного скачивания на сайте Microsoft.
Для того, чтобы страничка могла отображаться так, как задумал дизайнер, в любой операционной системе, существует возможность в CSS свойстве задавать несколько шрифтов, перечисленных через запятую.
Это свойство специфицирует приоритетный список имен семейств шрифтов и/или названий родовых семейств. Согласно спецификации CSS2 есть два типа имен семейств шрифтов:
- Имя семейства шрифтов по выбору. Например "Times new Roman", "Arial" и другие. Имена семейств шрифтов, содержащие пробелы, должны заключаться в кавычки. Если кавычки отсутствуют, любые символы пробела до и после имени шрифта игнорируются, а любая последовательность пробелов внутри имени шрифта конвертируется в одиночный пробел.
- Родовое (общее) семейство. В спецификации определены следующие родовые семейства:
- serif — шрифты с засечками на концах;
- sans-serif — шрифты без засечек;
- cursive — шрифты курсивного начертания;
- fantasy — декоративные шрифты;
- monospace — моноширинный шрифт(с буквами одинаковой ширины).
Таким образом для дизайна берется стандартный шрифт из OS Windows, подбирается к нему похожий для Mac OS и Unix/Linux, задается общее семейство шрифтов и готово.
Но не все так просто. Покопаем детальнее.
В поисках Web-безопасных шрифтов
В интернете исторически сложилось такое понятие как «безопасные» Web-шрифты. Безопасным шрифтом можно назвать такой шрифт, который является стандартным для всех операционных систем. Поскольку о таком положении дел остается только мечтать, то абсолютно безопасных шрифтов не существует!
Отдельные шрифты можно назвать безопасными с некоторыми оговорками.
Основой для определения «безопасных» шрифтов послужили шрифты наиболее распространенной операционной системы Windows, которые кроме того используются в других ОС. Примером такого использования служит уже упоминавшийся пакет шрифтов Core fonts for the Web, который, согласно статистике, скачало множество пользователей Unix/Linux.
В это пакет входят следующие шрифты: Andale Mono, Arial Black, Arial, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet MS, Verdana, Webdings. Все они поддерживают кириллицу, что немаловажно для рунета.
В набор шрифтов входящих в стандартную поставку Mac OS X (эта ОС имеет наибольшее распространение среди пользователей Mac OS) входят все шрифты набора Core fonts for the Web.
Таким образом на основе шрифтов Windows, использующихся в других ОС сформировался следующий список так называемых «безопасных» Web-шрифтов:
- Arial
- Arial Black
- Comic Sans MS
- Courier New
- Georgia
- Impact
- Times New Roman
- Trebuchet MS
- Verdana
Шрифт Webdings содержит набор пиктограмм, поэтому не может использоваться для контента. Andale Mono не получает широкого применения, поскольку плохо годится для повседневного чтения текста с экрана и есть не у всех пользователей Windows.
Все эти шрифты есть у каждого пользователя Windows, Mac OS X и у подавляющего большинства пользователей Unix/Linux (т.е. у тех, которые установили у себя пакет Core fonts for the Web).
А как же быть с остальными? Ведь хочется, чтобы замысел дизайнера увидело как можно большее число пользователей!
Об этом читайте во второй части публикации.
В данном списке перечислены шрифты, общие для всех актуальных на данный момент операционных систем Windows (фактически начиная с Windows 98), и их эквиваленты в Mac OS. Такие шрифты иногда называют «безопасными шрифтами для браузеров» (browser safe fonts ). Это небольшой справочник, которым я пользуюсь, когда делаю Web-страницы и думаю, что он будет полезен и Вам.Если Вы новичок в web-дизайне, то может быть думаете что-нибудь типа: «Почему это я должен ограничиваться таким небольшим набором шрифтов? У меня есть огромная коллекция прекрасных шрифтов!» Дело в том, что браузер посетителя может отобразить только те шрифты, которые установлены в его операционной системе (прим. переводчика: в настоящее время уже есть возможность применять фактически любые шрифты при оформлении страниц используя CSS 3 и его новое свойство @font-face ; правда, поддерживают эту функцию пока ещё далеко не все браузеры), а это означает, что каждый посетитель Вашей страницы должен быть обладателем выбранных Вами шрифтов. Поэтому Вы должны использовать только те шрифты, которые есть в каждой операционной системе. К счастью, в CSS есть свойство @font-family , облегчающее эту задачу.
Список
Значение @font-family | Windows | Mac | Семейство |
---|---|---|---|
Arial, Helvetica, sans-serif | Arial | Arial, Helvetica | sans-serif |
"Arial Black", Gadget, sans-serif | Arial Black | Arial Black, Gadget | sans-serif |
"Comic Sans MS", cursive | Comic Sans MS | Comic Sans MS 5 | cursive |
"Courier New", Courier, monospace | Courier New | Courier New, Courier 6 | monospace |
Georgia, serif | Georgia 1 | Georgia | serif |
Impact,Charcoal, sans-serif | Impact | Impact 5 , Charcoal 6 | sans-serif |
"Lucida Console", Monaco, monospace | Lucida Console | Monaco 5 | monospace |
"Lucida Sans Unicode", "Lucida Grande", sans-serif | Lucida Sans Unicode | Lucida Grande | sans-serif |
"Palatino Linotype", "Book Antiqua", Palatino, serif | Palatino Linotype, Book Antiqua 3 | Palatino 6 | serif |
Tahoma, Geneva, sans-serif | Tahoma | Geneva | sans-serif |
"Times New Roman", Times, serif | Times New Roman | Times | serif |
"Trebuchet MS", Helvetica, sans-serif | Trebuchet MS 1 | Helvetica | sans-serif |
Verdana, Geneva, sans-serif | Verdana | Verdana, Geneva | sans-serif |
Symbol | Symbol 2 | Symbol 2 | - |
Webdings | Webdings 2 | Webdings 2 | - |
Wingdings, "Zapf Dingbats" | Wingdings 2 | Zapf Dingbats 2 | - |
"MS Sans Serif", Geneva, sans-serif | MS Sans Serif 4 | Geneva | sans-serif |
"MS Serif", "New York", serif | MS Serif 4 | New York 6 | serif |
1 Шрифты Georgia и Trebuchet MS поставляются вместе с Windows 2000/XP и включены в пакет шрифтов IE (да и вообще поставляются со многими приложениями от Microsoft), поэтому они установлены на многих компьютерах с ОС Windows 98.
2 Символьные шрифты отображаются только в Internet Explorer, в остальных браузерах они обычно заменяются на стандартный шрифт (хотя, например, шрифт Symbol отображается в Opera, а Webdings - в Safari).
3 Шрифт Book Antiqua практически идентичен Palatino Linotype; Palatino Linotype поставляется с Windows 2000/XP, а Book Antiqua - с Windows 98.
4 Обратите внимание, что эти шрифты не TrueType, а bitmap, поэтому они могут плохо выглядеть с некоторыми размерами (они предназначены для отображения в размерах 8, 10, 12, 14, 18 и 24 pt при 96 DPI).
5 Эти шрифты работают в Safari только в стандартном начертании, но не работают при выделении жирным или курсивом. Comic Sans MS также работает жирным, но не курсивом. Другие Mac-браузеры, кажется, нормально эмулируют отсутствующие у шрифтов свойства самостоятельно (спасибо Christian Fecteau за подсказку).
6 Эти шрифты установливаются в Mac только при Classic-инсталляции
Скриншоты
- Mac OS X 10.4.8, Firefox 2.0, ClearType включён (за скриншот спасибо Juris Vecvanags)
- Mac OS X 10.4.4, Firefox 1.5, ClearType включён
- Mac OS X 10.4.11, Safari 3.0.4, ClearType включён (за скриншот спасибо Nolan Gladius)
- Mac OS X 10.4.4, Safari 2.0.3, ClearType включён (за скриншот спасибо Eric Zavesky)
- Windows Vista, Internet Explorer 7, ClearType включён
- Windows Vista, Firefox 2.0, ClearType включён (за скриншот спасибо Michiel Bijl)
Любой браузер по умолчанию не загружает и не устанавливает шрифты со сторонних ресурсов. Именно поэтому зачастую возникает проблема «нестандартных» шрифтов. Допустим, веб-мастер решил сделать на сайте какой-либо красивый шрифт, указал его в коде, а у большинства пользователей сайта этот шрифт не установлен в операционной системе.
Браузер, конечно, попытается заменить этот шрифт на один из тех, что установлен, но сайт отображаться будет совсем не так, как это было задумано изначально. Конечно же, есть технологии, позволяющие обойти данное ограничение, однако лучше делать это в крайних случаях, когда обойтись без сторонних шрифтов просто нельзя.
Итак, какой же этот «стандартный набор» шрифтов. Ниже приведён список предустановленных шрифтов операционных систем (подсвечены шрифты, рекомендованные к применению на сайтах):
Название шрифта | Win 2000 | Win XP | Vista | Win 7 | Win 8 |
Arial | + | + | + | + | + |
Arial Black | + | + | + | + | + |
Book Antiqua | + | ||||
Calibri | + | + | + | ||
Cambria | + | + | + | ||
Candara | + | + | + | ||
Comic Sans MS | + | + | + | + | + |
Consolas | + | + | + | ||
Constantia | + | + | + | ||
Corbel | + | + | + | ||
Courier | + | + | + | + | + |
Courier New | + | + | + | + | + |
Estrangelo Edessa | + | + | + | + | |
Franklin Gothic Medium | + | + | + | + | |
Gautami | + | + | + | + | |
Gabriola | + | + | |||
Georgia | + | + | + | + | + |
Georgia Italic Impact | + | ||||
Impact | + | + | + | + | + |
Latha | + | + | + | + | |
Lucida Console | + | + | + | + | + |
Lucida Sans Console | + | + | + | + | |
Lucida Sans Unicode | + | + | + | + | + |
Marlett | + | + | + | + | + |
Modern | + | + | |||
Modern MS Sans Serif | + | ||||
MS Sans Serif | + | + | + | + | + |
MS Serif | + | + | + | + | + |
MV Boli | + | + | + | + | |
Nyala | + | + | + | ||
Palatino Linotype | + | + | + | + | + |
Roman | + | + | + | + | + |
Script | + | + | + | + | + |
Segoe Print | + | + | + | ||
Segoe Script | + | + | + | ||
Segoe UI | + | + | + | ||
Small Fonts | + | + | |||
Symbol | + | + | + | + | + |
Tahoma | + | + | + | + | + |
Tempus Sans ITC | + | ||||
Times New Roman | + | + | + | + | + |
Trebuchet MS | + | + | + | + | + |
Tunga | + | + | + | + | |
Verdana | + | + | + | + | + |
Webdings | + | + | + | + | + |
Westminster | + | ||||
Wingdings | + | + | + | + | + |
Как выглядят стандартные шрифты.
Windows Vista, Internet Explorer 7, ClearType включен (нажмите на изображение для полноразмерного просмотра)Windows Vista, Firefox 2.0, ClearType включен (нажмите на изображение для полноразмерного просмотра)
Mac OS X 10.4.8, Firefox 2.0, ClearType включен (нажмите на изображение для полноразмерного просмотра)
Windows 2000, IE 6.0 (нажмите на изображение для полноразмерного просмотра)