CSS шрифти | Aspose.Font для .NET
Мета цієї статті — познайомити вас із шрифтами HTML/CSS та їхніми властивостями, а також на прикладах коду показати, як з ними працювати. Ви навчитеся робити текст жирним або напівжирним, змінювати розмір шрифту або сімейство шрифтів у CSS тощо.
Ви також побачите різницю між властивостями шрифтів CSS та загальною класифікацією властивостей шрифтів. Ці основи описані в статті Що таке шрифт?.
CSS шрифти
Шрифт у CSS — це ресурс, який містить візуальне представлення гліфів. Спрощено кажучи, він містить інформацію, яка співвідносить гліфи з їхніми відповідними кодами.
Ресурси шрифтів можна налаштувати локально на пристрої, на якому працює браузер. Для таких шрифтів описову інформацію можна отримати безпосередньо з ресурсу шрифту (наприклад, з файлу Montserrat.ttf). Для веб-шрифтів така інформація додається за посиланням на ресурс шрифту.
Властивості шрифту CSS
CSS надає кілька властивостей для керування виглядом і поведінкою шрифтів на веб-сторінках. Їх можна використовувати окремо або комбінувати для досягнення бажаних ефектів типографіки. Не всі з них підтримуються всіма браузерами, тому при використанні цих властивостей важливо враховувати сумісність між браузерами.
Давайте розглянемо деякі з найбільш вживаних властивостей:
font-family(Сімейство шрифтів)font-weight(Насиченість/Жирність шрифту)font-stretch(Розтягнення шрифту)font-style(Стиль шрифту)font-size(Розмір шрифту)font(Коротка форма запису)font-synthesis(Синтез шрифтів)text-decoration(Оформлення тексту)text-transform(Перетворення тексту)letter-spacing(Міжлітерний інтервал)line-height(Висота рядка)word-spacing(Міжслівний інтервал)
Сімейство шрифтів CSS (font-family)
Шрифти зі спільним дизайном зазвичай групуються в сімейства шрифтів. Усередині сімейства гліфи можуть відрізнятися за шириною, нахилом або насиченістю.
Властивість CSS font-family використовується для вибору гарнітури. Рекомендується вказати всі варіанти шрифтів одного типу, оскільки важко передбачити, чи доступний конкретний шрифт на комп’ютері користувача. У цьому випадку браузер перевірятиме їх наявність, перебираючи вказані шрифти один за одним, доки не знайде доступний.
Властивість font-family успадковується.
У CSS font-family може мати такі значення:
- Назва сімейства шрифтів: (
Verdana,Montserrat,Courier). - Загальні (generic) сімейства: Тут потрібно вказати один із п’яти
типів шрифтів:
serif(із засічками),sans-serif(без засічок),cursive(відповідає рукописним шрифтам),fantasy(відповідає декоративним шрифтам) абоmonospace(моноширинний). initial: Встановлює значення за замовчуванням.inherit: Успадковує значення від батьківського елемента.
Приклад використання:
У наведеному прикладі встановлюються такі параметри:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font-family: | Lobster, Pacifico, cursive; | Audiowide, fantasy; | Courier, monospace; |
Синтаксис:
1// text 1
2.text1 {
3 font-family: Lobster, cursive;
4}
5// text 2
6.text2 {
7 font-family: Audiowide, fantasy;
8}
9// text 3
10.text3 {
11 font-family: Courier, monospace;
12}Результат застосування буде наступним (зауважте, що розмір і колір шрифту були встановлені однакові для всіх трьох текстів у <body>):

Насиченість шрифту CSS (font-weight)
Властивість font-weight відповідає за товщину ліній шрифту.
Властивість font-weight успадковується.
В HTML/CSS font-weight може мати такі значення:
normal: Значення за замовчуванням, що відповідає 400.bold: Робить шрифт жирним. Це відповідає вазі 700.bolder: Встановлює вагу більшу, ніж у батьківського елемента.lighter: Встановлює вагу меншу, ніж у батьківського елемента.100, 200, 300, 400, 500, 600, 700, 800, 900: Де100означає найтонший шрифт, а900— найбільш насичений (жирний).initial: Встановлює значення за замовчуванням.inherit: Успадковує значення від батьківського елемента.
Приклад використання:
Візуалізуємо тексти з наступними параметрами font-weight:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font-weight: | 900; | 500; | 200; |
Синтаксис:
1// text 1
2.text1 {
3 font-weight: 900;
4}
5// text 2
6.text2 {
7 font-weight: 500;
8}
9// text 3
10.text3 {
11 font-weight: 200;
12}Результат застосування виглядатиме так (зауважте, що розмір і колір шрифту були однакові для всіх трьох текстів). Крім того, важливо пам’ятати, що використовуваний шрифт повинен мати необхідні варіації насиченості. Більшість шрифтів доступні лише у «звичайному» та «жирному» накресленнях. Шрифт Segoe UI, використаний у прикладі, має достатньо варіацій насиченості, щоб текст відображався в усіх значеннях, установлених у прикладі.

Розтягнення шрифту CSS (font-stretch)
Властивість font-stretch дозволяє вибрати звичайний, стиснений або розширений шрифт із сімейства шрифтів. Ця властивість працює не для кожного шрифту; лише деякі спеціально розроблені шрифти, які мають у своєму сімействі гарнітури з варіантами розтягування, можуть відображати цю властивість.
Властивість font-stretch успадковується.
Значення font-stretch у CSS можуть бути такими:
ultra-condensed: Для найбільш стисненого шрифту.extra-condensed: Другий за ступенем стиснення шрифт.condensed: Стиснений шрифт.semi-condensed: Трохи стиснений шрифт.normal: Значення за замовчуванням.semi-expanded: Трохи розширений шрифт.expanded: Розширений текст.extra-expanded: Другий за ступенем розширення шрифт.ultra-expanded: Найбільш розширений шрифт.initial: Встановлює значення за замовчуванням.inherit: Успадковує значення від батьківського елемента.
Приклад використання:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font-stretch: | condensed; | normal; | expanded; |
Синтаксис:
1// text 1
2.text1 {
3 font-stretch: condensed;
4}
5// text 2
6.text2 {
7 font-stretch: normal;
8}
9// text 3
10.text3 {
11 font-stretch: expanded;
12}Результат застосування виглядатиме так:

Стиль шрифту CSS (font-style)
Ця властивість регулює нахил шрифту.
Властивість font-style успадковується.
Свойство font-style в HTML/CSS може мати такі значення:
normal: Значення за замовчуванням, яке встановлює нормальний нахил для шрифту.italic: Робить текст курсивом.oblique: Встановлює похиле накреслення шрифту (коли воно доступне в сімействі).initial: Встановлює значення за замовчуванням.inherit: Успадковує значення від батьківського елемента.
Приклад використання:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font-style: | normal; | italic; | oblique; |
Синтаксис:
1// text 1
2.text1 {
3 font-style: normal;
4}
5// text 2
6.text2 {
7 font-style: italic;
8}
9// text 3
10.text3 {
11 font-style: oblique;
12}Результат застосування виглядатиме так:

Можливо, ви помітили, що результати для italic та oblique виглядають однаково. Це пов’язано з тим, що значення oblique повноцінно працює лише тоді, коли шрифт має спеціальне похиле накреслення; в іншому випадку браузер може застосувати імітацію нахилу, подібну до курсиву.
Розмір шрифту CSS (font-size)
Властивість встановлює висоту гліфів шрифту.
Властивість font-size успадковується.
CSS font-size має такі значення:
- Абсолютний розмір: Це може бути
xx-small,x-small,small,medium,large,x-largeабоxx-large. Значення за замовчуванням —medium. - Відносний розмір: Розмір у порівнянні з батьківським елементом. Може бути
smallerабоlarger. - Одиниці вимірювання: Встановлюються в пікселях (
px) або Ems (em).em— це масштабована одиниця; 1em дорівнює поточному розміру шрифту. Якщо розмір шрифту документа 14pt, то 1em дорівнює 14pt. - Відсотки (%): Відносне значення обчислюється в порівнянні зі шрифтом батьківського елемента.
- Ширина області перегляду (vw): Дозволяє шрифту відповідати розміру вікна використовуваного браузера (1vw = 1% ширини viewport).
initial: Встановлює значення за замовчуванням.inherit: Успадковує значення від батьківського елемента.
Приклад використання:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font-size: | 7vw; | 70px; | 2em; |
Синтаксис:
1// text 1
2.text1 {
3 font-size: 7vw;
4}
5// text 2
6.text2 {
7 font-size: 70px;
8}
9// text 3
10.text3 {
11 font-size: 2em;
12}Результат:

Коротка форма запису CSS (font)
Властивість CSS font використовується, щоб зробити код коротшим, дозволяючи встановити всі інші властивості шрифту в одній властивості. Можуть бути вказані такі властивості:
font-style, font-variant, font-weight, font-stretch, font-size/line-height та font-family. Також можна включити значення властивості font-variant, що підтримується CSS 2.1 — normal або small-caps (малі прописні). Докладнішу інформацію про цю властивість див. у параграфі
Варіант шрифту статті
Що таке шрифт?.
Приклад використання:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font: | 6vw Arial; | 60pt Courier, monospace; | - |
Синтаксис:
1// text 1
2.text1 {
3 font: 6vw Arial;
4}
5// text 2
6.text2 {
7 font: 60pt Courier, monospace;
8}
9// text 3
10.text3 {
11}Результат застосування цих параметрів показано на малюнку нижче. Оскільки ми не встановлювали жодних значень для третього тексту, він був відтворений у параметрах за замовчуванням.

Синтез шрифтів CSS (font-synthesis)
Ця властивість визначає, чи дозволено браузерам синтезувати жирне або похиле накреслення, якщо вони відсутні в сімействі шрифтів. Якщо font-weight або font-style не вказані у файлі шрифту, браузер може їх «зімітувати», якщо це не заборонено цією властивістю.
Властивість font-synthesis успадковується.
Допустимі значення:
none: Забороняє синтез.weightабо/таstyle: Зазначену властивість/властивості дозволяється синтезувати.initial: Встановлює значення за замовчуванням.inherit: Успадковує значення від батьківського елемента.
Приклад використання:
| Властивість | Значення для тексту 1 | Значення для тексту 2 | Значення для тексту 3 |
|---|---|---|---|
font-synthesis: | weight; | style; | none; |
font-weight: | 900; | - | 900; |
font-style: | - | oblique; | oblique; |
Синтаксис:
1// text 1
2.text1 {
3 font-synthesis: weight;
4 font-weight: 900;
5}
6// text 2
7.text2 {
8 font-synthesis: style;
9 font-style: oblique;
10}
11// text 3
12.text3 {
13 font-synthesis: none;
14 font-weight: 900;
15 font-style: oblique;
16}Результат застосування показано на зображенні нижче. Оскільки ми встановили значення none для третього тексту, браузер не став синтезувати запрошені стилі.

Стеки шрифтів (Font Stacks)
Стеки шрифтів (font stacks) стосуються списку шрифтів, визначених у CSS, які використовуються як резервні варіанти (fallback), якщо певний шрифт відсутній на пристрої користувача. Вони гарантують веб-дизайнерам узгодженість типографіки на різних платформах.
Щоб визначити сімейства шрифтів, зазвичай визначають стек, перераховуючи кілька шрифтів у порядку переваги. Якщо перший параметр недоступний, браузер намагається використати наступний, доки не знайде доступний варіант.
Ось приклад: тут бажаним шрифтом є “Helvetica Neue”. Якщо він недоступний, наступним варіантом буде “Arial”. Якщо і “Arial” недоступний, браузер використає загальний шрифт sans-serif.
1 font-family: "Helvetica Neue", Arial, sans-serif;Вказати загальне сімейство шрифтів (sans-serif, serif або monospace) як останню опцію в стеку вважається правильною практикою, що гарантує наявність відповідної заміни.
Веб-безпечні шрифти (Web-safe fonts)
Безпечні веб-шрифти, також відомі як системні шрифти або шрифти за замовчуванням, — це набір шрифтів, які зазвичай доступні в різних операційних системах і на різних пристроях. Вони вважаються безпечними для використання у веб-дизайні, оскільки широко підтримуються.
На початку веб-розробки вибір був обмежений через різну доступність шрифтів, тому дизайнери покладалися на базовий набір шрифтів, встановлених на більшості комп’ютерів.
Приклади відомих веб-безпечних шрифтів:
- Arial
- Helvetica
- Times New Roman
- Georgia
- Courier New
- Verdana
- Tahoma
- Trebuchet MS
Однак із прогресом у технологіях і широким використанням спеціальних шрифтів (Google Fonts та ін.), залежність від веб-безпечних шрифтів зменшилася, що дало дизайнерам більшу візуальну гнучкість.
Як використовувати зовнішні шрифти в CSS?
Щоб використовувати зовнішні шрифти, можна застосувати правило @font-face. Воно дозволяє вказати спеціальний шрифт і зробити його доступним на вашій сторінці. Ось як це зробити:
Отримайте файли шрифтів:
- Знайдіть файли в потрібних форматах, таких як
WOFF,WOFF2,TTFабоEOT. - Їх можна отримати за допомогою таких сервісів, як Google Fonts, або завантажити з надійних джерел.
- Знайдіть файли в потрібних форматах, таких як
Завантажте файли:
- Завантажте файли на свій веб-сервер або в призначену папку у вашому проекті.
Визначте правило @font-face:
- У CSS-файлі вкажіть назву сімейства та шлях до файлів, включаючи кілька форматів для підтримки різних браузерів.
Приклад:
1 @font-face {
2 font-family: 'MyCustomFont';
3 src: url('path/to/font.woff2') format('woff2'),
4 url('path/to/font.woff') format('woff');
5 /* Додайте інші формати, якщо вони є */
6 }- Застосуйте шрифт:
- Після визначення
@font-faceви можете використовувати спеціальний шрифт у властивостіfont-family. Якщо спеціальний шрифт не завантажиться, браузер використає стандартну заміну.
- Після визначення
1 body {
2 font-family: 'MyCustomFont', sans-serif;
3 }- Тестуйте та перевіряйте в різних браузерах і на пристроях.
Кілька слів про адаптивну типографіку
Адаптивна (відгукова) типографіка — це практика проектування та впровадження типографіки на сайті так, щоб вона адаптувалася до різних розмірів екрана та пристроїв. Це передбачає налаштування таких факторів, як розмір шрифту, довжина рядка та інтервали.
Ключові аспекти:
- Відносні одиниці: Замість фіксованих розмірів використовуються відсотки,
emабоremдля пропорційного масштабування тексту. - Медіа-запити: Дозволяють адаптувати стилі шрифту під конкретну ширину екрана.
- Одиниці вікна перегляду (Viewport Units): Такі як
vwтаvh, які змінюють розмір шрифтів залежно від габаритів вікна браузера. - Довжина рядка та читабельність: Регулювання кількості символів у рядку та вертикального інтервалу (
line-height), щоб уникнути занадто щільного або розрідженого тексту. - Чітка ієрархія: Гарантія того, що заголовки та основний текст добре розрізняються на маленьких екранах.
- Доступність: Врахування контрастності між текстом і фоном, а також можливість гнучкого регулювання розміру.
Висновок
Стилі шрифтів CSS є ключовими блоками в розробці інтерфейсів. Оскільки більшість вмісту веб-сторінок — це текст, опанування цих властивостей необхідно для забезпечення якісного зовнішнього вигляду, хорошої читабельності та масштабованості.
Деякі властивості легко працюють з будь-яким шрифтом, але для інших потрібні спеціальні шрифти, що підтримують специфічні варіації. Наприклад, шрифт Inconsolata має 8 варіацій насиченості, тоді як багато шрифтів пропонують лише normal та bold.
Якщо ви шукаєте конкретний шрифт, ви можете спробувати знайти та завантажити його через безкоштовні веб-програми Aspose. Крім того, Font viewer надасть усі необхідні технічні деталі, які можуть знадобитися під час розробки.