CSS властивості
ГлавнаяБлогЯк змінити розмір тексту під час зміни розміру вікна?

Як змінити розмір тексту під час зміни розміру вікна?

484

Для зміни розміру тексту веб-сторінки спільно з вікном браузера є кілька способів. Розглянемо найпопулярніші.

Використання одиниць vw

Розмір тексту задається за допомогою властивості font-size, як значення можна вказувати різні одиниці — пікселі, пункти, міліметри та ін. Одиниця vw (від англ. приклад 1).

Приклад 1. Використання vw

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Розмір тексту</title> <style> section h2 { font-size: 3vw; /* Розмір заголовка */
} 
section div { font-size: 2vw; /* Розмір тексту */
}
</style>
</head>
<body> <section> <h2>Для педагогів</h2> <div> Сучасна освітня парадигма, ратифікуючи пріоритет особистісної орієнтації педагогічного процесу, під час якого здійснюється розвиток природних задатків, закладених у кожному індивідуумі, потребує переосмислення існуючих традиційних форм та методів загальнообов'язкової освіти.
</div>
</section>
</body>
</html>

Результат цього прикладу показаний на рис. 1.

а

б Рис. 1. а — текст на широкому вікні; б — текст на вузькому вікні

У одиниці vw є кілька недоліків — головне, що текст зменшується пропорційно до вікна і в якийсь момент стає нечитаним. Це буде особливо помітно на смартфонах, де ширина екрана менша за ширину моніторів. Щоб встановити мінімальний розмір тексту, можна скористатися функцією calc(), як показано в прикладі 2.

Приклад 2 Використання calc()

section h2 { font-size: calc(1rem + 2vw); } 
section div { font-size: calc(14px + 1vw); }

Тут ми змішуємо різні одиниці — для заголовка rem та vw, для основного тексту пікселі та vw. Використання calc() гарантує, що текст не стане меншим від зазначеного значення (для заголовка, наприклад, це 1rem).

Використання медіа-запитів

Оскільки одиниці vw зав'язані на ширину області перегляду, то при збільшенні розміру вікна збільшується розмір тексту. Іноді потрібно зробити навпаки — на маленьких екранах показувати великий текст, а на великих екранах, відповідно, маленький текст. Для цього застосовуються медіа-запити, вони змінюють стиль елементів за певної ширини вікна браузера.

Спершу визначаємо стиль для великих екранів, потім за допомогою конструкції @media screen and (max-width: 1024px) задаємо стиль для екранів з шириною до 1024 пікселів . Всередині @media пишеться розмір тексту для цього розміру. За бажанням нижче додаємо ще кілька @media з різними значеннями max-width (приклад 3).

Приклад 3. Використання @media

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Розмір тексту</title> <style> /* Для всіх екранів */
section h2 { font-size: 2rem; } 
section div { font-size: 1rem; } 
/* Для ширини 1024 пікселів і менше */
@media screen and (max-width: 1024px) { section h2 { font-size: 2.2rem; } 
section div { font-size: 1.2rem; } 
} 
/* Для ширини 600 пікселів і менше */
@media screen and (max-width: 600px) { section h2 { font-size: 2.5rem; } 
section div { font-size: 1.5rem; } 
}
</style>
</head>
<body> <section> <h2>Для педагогів</h2> <div> Сучасна освітня парадигма, ратифікуючи пріоритет особистісної орієнтації педагогічного процесу, під час якого здійснюється розвиток природних задатків, закладених у кожному індивідуумі, потребує переосмислення існуючих традиційних форм та методів загальнообов'язкової освіти.
</div>
</section>
</body>
</html>

Розмір тексту в даному випадку буде змінюватися не плавно, а ступінчасто — при досягненні вказаної ширини вікна розмір тексту зменшується або збільшується.