Как стать автором
Обновить

Комментарии 37

Пожалуйста, не надо на маленьких экранах уменьшать шрифты. Пользователь ставит в настройках системы тот размер шрифта, который ему комфортно читать. Используйте это значение. И наоборот, не надо вываливать на больших экранах гигантские буквы — их так же не комфортно читать. Вообще, размер шрифта должен зависеть от размера экрана примерно никак.

Все таки я не соглашусь с тем, что размер шрифта зависит от размера экрана примерно никак. Отображать один и тот же размер шрифта на экране iphone 5 и на экране широкоформатного телевизора вряд ли уместно. Если я, конечно, правильно понял о чем Вы.


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

Вы не теоретизируйте, а проверьте как показывается один и тот же "размер" шрифта на разных девайсах. Везде разные "css пиксели".

Не очень понимаю, что значит "не теоретизируйте" в данном контексте. И как утверждение: "везде разные "css пиксели"" связано с тем, что пользователю с экраном iphone 5 и широкоформатного телевизора нужно показывать один шрифт. Если Вы клоните к тому, что на телевизоре 4K размер шрифта 14px будет выглядеть так же, как и на iphone 5 (из-за разного размера этих пикселей) и давать одинаковый UX, то из исходя чисто из практики это далеко не так.

Именно к этому и клоню. Если на каком-то телевизоре размер css-пикселей не является удобочитаемым, то это проблема конкретной модели и у неё эти проблемы на всех сайтах.

Агась.

Скажу только, что в моей ситуации такой подход я применить не смогу точно. Подробности постараюсь описать в следующей публикации.

На мониторах c плотными пикселями браузеры сами множат на 2 все размеры с пикселями если я правильно помню. Иначе навернулись бы все продукты что были до этих мониторов.
для удобства пользователя есть чудесная настройка font-size. Используя rem'ы (или em'ы), мы привязываемся к этой настройке. Используя вашу технику, мы игнорируем пользователя, который хотел сделать свой шрифт больше/меньше.

Правильно ли я понял, что имеется ввиду настройка (например) в настольной версии гугл хром: Внешний вид -> размер шрифта? Если да, то к сожалению ее игнорирует хабр, на котором мы сейчас находимся. Или допустим возьмем такой сайт, как google. Попробуйте поставить очень крупный шрифт в настройках и перейти на google.com. На основной странице вы увидите увеличенные буквы, но как только вы наберете что-то в поиске и нажмете enter, страница с выдачей окажется игнорирующей эту настройку. Если пойти еще дальше и перейти в Настроить шрифты -> Размер шрифта и там выставить максимальные 72, то страница с выдачей поведет себя еще интересней. Сами шрифты проигнорируют эту настройку, а вот все расстояния на странице будут сильно увеличены.


Там есть еще одна настройка — Минимальный размер шрифта. На нее будет реагировать и хабр и сайт с этой техникой. Если указанный в ней минимальный размер шрифта будет больше, чем тот, что на посещаемом сайте. Но если размер шрифта на сайте больше, то хабр это тоже проигнорирует. Как и гугл. Но это логично исходя из названия настройки.

Правильно
НЛО прилетело и опубликовало эту надпись здесь
Из браузера мы же не имеем доступа к настройкам размера шрифта телефона — а как тогда «использовать это значение»?

font-size: 1rem

для больших экранов h1- 4rem, будет вполне нормально выглядеть

Не будет.

Но какое это имеет отношение к системным настройкам шрифта в системе пользователя? Возьмём к примеру IOS и системные настройки Text Size. Изменение системного Text Size в любую сторону никак не влияет на размеры шрифтов на веб-страницах в браузерах IOS.

Поищите соответствующий пункт в настройках браузера.

Настройки браузера != настройки системы пользователя. Вы говорили о том, что нужно брать именно настройки системы. Комментарий Almatyn, как я понимаю, был именно об этом.

В настройках Firefox под Android есть пункт "Использовать системный размер шрифта".

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

Не соглашусь.
Конечно же размер шрифта зависит от экрана. Обе эти сущности основаны на занимаемой площади и контрасте. На большом экране количества информации больше, поэтому заголовки приходится выделять сильнее, чтобы выделять структуру документа. На мобиле это практически не требуется.
Поэтому решения по адаптивности размера и отступов очень и очень хороши. www.npmjs.com/package/rfs

Тут на хабре h1 32px. В мобильной 22px. Ужасно было бы сделать везде h1 заголовки 22px. Это технически абсолютно приемлиемо, но убежден, что статиситически в любом слепом тесте больший размер шрифта на десктопах будет восприниматься как более одобряемый. Так сделано, наверное, в 90% всех популярных сайтов.

В мобильной 24px, а в ленте на десктопе 28px. И эту разницу вы на глаз не заметите. А вот что вы заметите, так это то, что заголовок из 3 слов не влезает по ширине и начинает переноситься.

у меня 20px на мобиле в ленте (пресет iphone 6/7/8)и 28px на десктопе. Но не суть. Разницу в 4px очень не сложно заменить,
image
а при 8 еще сильнее.
Если говорить о словах, то о каких именно, если о «сказ о css» то и при 40px не перенесется. А если о «сложности синтеза тетрагидропиранилциклопентилтетрагидропиридопиридина» то никуда не влезет.
Влезет или нет это отдельная история. Не думаю, что есть некий универсальный размер куда прям явно можно попасть, чтобы не было висячих строк и смотрелось норм. обычно чуть крупнее основного на мобиле, а то и вообще можно обойтись одним strong иногда, а на десктопе эта минимальная разница не так важна и может быть увеличина 2-4 раза. Накупят себе 32 мониторов. У них там все заголовки как чешуйницы в туалете. Все от идеи.
Согласен. Дико раздражает что некоторые сайты на большом мониторе используют гигантские заголовки отступы и шрифты… Это как читать книгу где шрифт меняется от размера страницы…
А что если пользователь увеличивает экран? Вёрстка не начинает ехать?

Хороший и правильный вопрос. Это как раз из тех моментов, о которых стоит помнить при использовании этой техники или любой другой техники отзывчивых шрифтов. В моем случае все свёрстано таким образом, что вереска не едет, но все увеличивается пропорционально изменившемуся масштабу. Для моего приложения и моих пользователей это приемлемое поведение, но если вы считаете, что ваши пользователи будут пользоваться увеличением экрана, то возможно эта адаптивная техника не подходит. Постараюсь подробно описать в следующей статье в больших деталях. Спасибо за вопрос.

А это как сверстать. Гармоничные отступы конечно уедут, но на флексах положения блоков должны оставаться в предполагаемой схеме обычной адаптивности.
НЛО прилетело и опубликовало эту надпись здесь
Если не брать во внимание слабую браузерную поддержку, почему бы не использовать что-то типа такого:
h1 {
   font-size: clamp(.7cm, 5vw, 1.5cm);
}
Потому что размер шрифта не может зависеть от вьюпорта прямо пропорционально.
Во-первых, это бессмысленно.
Во-вторых, ломает браузерное масштабирование.
1. Отсутствие аргументации. Субъективно.
2. Проверено в ff и хроме — прекрасно масштабируется и ничего не ломается.
1. Когда человек покупает большой монитор, он хочет, чтобы в экран помещалось больше контента, а не столько же как и раньше, но крупнее. Поэтому увеличивать шрифт на большом мониторе можно, но не прямо пропорционально.
2. Плохо проверяете. Если указать размер шрифта в единицах vw, то он перестаёт реагировать на масштабирование. Совершенно понятно почему: при увеличении масштаба виртуальный размер вьюпорта уменьшается в такое же количество раз, во сколько увеличивается размер css-пикселя. Одно сокращается на другое, получается тот же самый размер в физических пикселях.
Суть моего предложения — в привязке к зрению в реальности, вне зависимости от размера монитора. Хотя наверно вы правы на счет проблемы с масштабированием, однако и неправы одновременно, потому что игнорируете работу функции clamp().

В точке 2048px шрифт примерно 20px, а должен быть 24px. Или я что-то не верно понял?

Да, конечно. Вы правы. Это я не поправил в переводе, хотя нужно было. Диапазон будет до 20px. Еще одна ошибка автора оригинальной статьи. Исправлю, спасибо!

интересная статья, отличный перевод!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории