Атрибут viewBox тега <svg>
Описание
Атрибут viewBox определяет систему координат и область просмотра для элемента <svg>. Он задаёт видимую часть SVG-изображения и его масштабирование.
<svg width="200" height="100" viewBox="0 0 200 100">
<rect x="0" y="0" width="200" height="100" fill="#3498db"/>
</svg>
Синтаксис viewBox:
| Параметр | Описание |
|---|---|
min-x |
Смещение по оси X (обычно 0) |
min-y |
Смещение по оси Y (обычно 0) |
width |
Ширина системы координат |
height |
Высота системы координат |
Основные функции:
- Определяет видимую область SVG-контента
- Задаёт пользовательскую систему координат
- Обеспечивает правильное масштабирование
- Позволяет "приближать" отдельные части изображения
Пример с масштабированием:
<svg width="100" height="100" viewBox="50 50 100 100">
<circle cx="100" cy="100" r="50" fill="#e74c3c"/>
</svg>
Рекомендации по использованию:
- Всегда указывайте viewBox для масштабируемых SVG
- Сохраняйте пропорции с width/height
- Используйте preserveAspectRatio для контроля пропорций
- Для иконок используйте круглые числа (0 0 24 24)
Ограничения и особенности:
- Без viewBox SVG может отображаться некорректно
- Отрицательные значения могут обрезать изображение
- Не влияет на абсолютные единицы внутри SVG (px, pt)
- Требует точного соответствия с внутренними координатами
Пример с preserveAspectRatio:
<svg width="300" height="150" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid meet">
<circle cx="50" cy="50" r="45" fill="#2ecc71"/>
</svg>
Примечание: Для сложных SVG-изображений сначала разрабатывайте контент в координатах viewBox, затем настраивайте отображение через атрибуты width/height.