Статьи

Новые CSS3 Относительные единицы измерения размера шрифта

Прошло более трех лет с тех пор, как я в последний раз писал о размере шрифта CSS . В течение десятилетия мы были заполнены непоследовательными ключевыми словами (маленькие, средние, большие и т. Д.) И некорректными фиксированными единицами (px, pt, mm). В то время как проблемы, связанные с px в Internet Explorer, исчезли,% и em остались лучшими решениями, особенно для адаптивных проектов.

К счастью, CSS3 предоставляет нам несколько новых альтернатив …

рем

Одна проблема, связанная с процентным соотношением и изменением размеров, — это сложная каскадная головоломка! Рассмотрим этот базовый пример …

<style> body { font-size: 100%; } p, li { font-size: 0.75em; } </style> <p> 12px text </p> <ul> <li> 12px text <ul><li> 9px text </li></ul> </li> </ul> 

Единицы em относятся к их родительскому контейнеру, поэтому во вложенных списках размер шрифта уменьшается. Может быть трудно определить размеры шрифта на сложных страницах — большинство из нас использует силу (много проб и ошибок) .

rem похож на em за исключением того, что он относится к корневому элементу, а не к родительскому элементу. Изменение селектора li на 0.75rem обеспечит 0.75rem всех вложенных списков на 12px.

rem доступен в Chrome, Firefox, Safari, Opera и IE9 +. Старые браузеры могут поддерживаться с запасным вариантом, и вам, вероятно, будет проще использовать абсолютные единицы, например

 p, li { font-size: 12px; font-size: 0.75rem; } 

VW, VH и Vmin

Эти новые свойства позволяют масштабировать размеры шрифта в соответствии с размерами области просмотра, т.е.

  • 1vw составляет 1% от ширины области просмотра
  • 1vh составляет 1% от высоты окна просмотра
  • 1vmin является самым маленьким из 1vw и 1vh

Например, предположим, что область просмотра вашего браузера установлена ​​на 1000 x 1200 пикселей:

  • 1.5vw = размер шрифта 15px
  • 1.5vh = размер шрифта 18px
  • 1.5vmin = min (1.5vw, 1.5vh) = размер шрифта 15px

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

Поддержка браузера немного нестабильна, но она идет…

  • IE10 — полная поддержка
  • IE9 — поддерживается, но vmin называется «vm»
  • Chrome 22+ — полная поддержка
  • Safari 6 и iOS Safari 6 — полная поддержка
  • Firefox — будет реализован в версии 19 (конец февраля 2013 г.)
  • Blackberry Browser 10 — полная поддержка

Оперы пока нет ни слова, но я подозреваю, что они по делу. Опять же, может быть целесообразно использовать запасные варианты в течение нескольких лет, например

 p, li { font-size: 12px; /* old */ font-size: 1.2vm; /* IE9 */ font-size: 1.2vmin; } 

Будете ли вы использовать какие-либо из этих новых модулей для определения размера шрифта на своих страницах?

И если вам понравилось читать этот пост, вы полюбите Learnable ; место, чтобы узнать новые навыки и приемы у мастеров. Участники получают мгновенный доступ ко всем электронным книгам и интерактивным онлайн-курсам SitePoint, таким как HTML5 и CSS3 для реального мира .

Комментарии к этой статье закрыты. У вас есть вопрос о CSS3? Почему бы не спросить об этом на наших форумах ?