CSS и вёрстка

Как изменить размер иконки CSS

📅 ⏱ 21:26 ⏳ 1 мин 💬 0

Как изменить размер иконки css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем

Коротко: размер иконки в CSS меняют по-разному в зависимости от типа: у SVG — через width/height (или width: 1em для выравнивания с текстом), у шрифтовых иконок — через font-size, у картинки — обычными width/height. Для единообразия удобно задать размер через переменную.

Кому и зачемИконки должны «сидеть» рядом с текстом, быть одного размера в блоке и адаптироваться на мобильных. Небольшая система размеров избавляет от «прыгающих» маленьких и больших иконок.

Тип иконки определяет способ

Тип Как менять размер
Инлайн SVG width, height
SVG для текста width: 1em; height: 1em
Шрифтовая иконка font-size
Картинка (img) width/height
Маска width/height у блока

Вкладки: примеры




CSS
.icon {
  width: 24px;
  height: 24px;
}
.icon--lg { width: 32px; height: 32px; }

Задайте оба размера, иначе иконка может «схлопнуться» или растянуться. У SVG с viewBox пропорции сохранятся.

CSS
.icon-inline {
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;   /* аккуратное выравнивание */
}

Размер в em привязан к размеру шрифта: иконка автоматически подстроится под текст, где бы он ни был крупнее или мельче.

CSS
.icon-font { font-size: 20px; }
.icon-font--sm { font-size: 14px; }

У шрифтовых иконок размер задаёт font-size — как у обычного текста. Цвет — обычным color.

CSS
.icon-img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

Для картинки задают размеры и object-fit, чтобы не искажалась. Если картинка «Retina» — задавайте половину её исходного размера.

Шкала размеровЗаведите переменные: --icon-sm: 16px, --icon: 24px, --icon-lg: 32px. Тогда все иконки на сайте будут согласованы, а менять размер — в одном месте.

Практика: иконка рядом с текстом

  1. Разместите иконку и текст в flex-строке.
  2. Иконке задайте width: 1em; height: 1em; flex-shrink: 0;.
  3. Проверьте выравнивание по вертикали (align-items: center).
  4. Отступ между иконкой и текстом — gap.
  5. Проверьте, как выглядит при увеличении размера шрифта в браузере.

Частые ошибки: причина → решение

Симптом Причина Решение
Иконка растянута задан только один размер задать width и height
Иконка «прыгает» по высоте нет vertical-align flex или vertical-align
Шрифтовая не меняется меняли width вместо font-size задать font-size
Иконка сжимается в строке flex-shrink по умолчанию flex-shrink: 0

Проверьте себя

Чек-лист




Как задать размер шрифтовой иконки?




Зачем иконке рядом с текстом width: 1em?




Вопросы и ответы

Без заданных width/height и при отсутствии размеров во вьюбоксе он может схлопнуться до нуля. Задайте размеры в CSS.

Через медиа-запрос или clamp(). Но обычно иконки не масштабируют — контролируют «кликабельную зону» (48×48px), а не сам глиф.

Лучше всего flex: контейнер display: flex; align-items: center; и gap между элементами.

Да: .icon { width: var(--icon); height: var(--icon); } и задавать разные переменные для контекстов.

Итоги

  • SVG — размер через width/height, шрифтовые — через font-size.
  • Рядом с текстом удобно width: 1em; height: 1em.
  • Задавайте оба размера, чтобы иконка не искажалась.
  • Используйте шкалу размеров и flex-shrink: 0 в строке.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость