Есть ли смысл использовать относительный размер шрифта в CSS? - PullRequest
9 голосов
/ 16 ноября 2008

Я много читал о плюсах и минусах выбора размера относительного или абсолютного размера шрифта. Фиксированные размеры не увеличивают масштаб в IE6, но в наши дни это не большая проблема. Доступность важна, но я предполагаю, что все хорошее программное обеспечение доступности разработано для решения этих проблем?

Я полагаю, что в основном все сводится к тому, хотите ли вы иметь возможность изменять все размеры шрифта с помощью одного правила (т. Е. Установленный вами размер шрифта по умолчанию) или хотите ли вы иметь возможность изменять размер шрифта где-то без влияния на вложенные элементы (это то, что меня расстраивает больше всего!).

Кто-нибудь есть советы?

Ответы [ 7 ]

4 голосов
/ 16 ноября 2008

Согласно YUI Font CSS ,

Всегда используйте проценты в качестве единиц потому что они делают более последовательно чем ЭМС, и потому что они позволяют пользовательское изменение размера (в отличие от пикселей).

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

Лично я время от времени добавляю абсолютное значение px, но обычно только для текста, который должен как-то соответствовать по размеру некоторым другим элементам дизайна (например, меню).

Материал% не работает, когда вы назначаете% для определенного элемента, а затем другой% для содержащегося элемента. Но это единственная настоящая ошибка, которую я нашел.

2 голосов
/ 16 ноября 2008

Помимо возможности изменения размера в IE6 (который, увы, все еще является очень популярным браузером), относительные шрифты дают вам большую вероятность соответствия потребностям пользователя по умолчанию без необходимости изменять их размер (или не знать, как, если мы говорим здесь неопытные пользователи). У пользователя - или у кого-то от его имени - может быть увеличен размер шрифта в качестве настройки DPI, ОС или браузера по уважительным причинам (например, ухудшение зрения), и с относительным размером вы можете использовать эту информацию в своих интересах.

Используйте «px» для текста, который должен соответствовать размерам с другими элементами на странице, которые имеют размеры в пикселях (то есть изображения). Что касается прочего, '%'. Вопрос предполагает, что использование относительных размеров шрифта в некотором роде затруднительно; Я не думаю, что это так.

Обычно вы устанавливаете один размер шрифта в «%» для основного текста и несколько для других элементов страницы, которые более или менее важны, чем общий основной текст. У вас редко должно быть достаточно уровней вложенности и размеров шрифтов, чтобы их было сложно отследить.

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

Единственная реальная проблема с относительным состоянием - это когда вы измеряли блок относительно, но вы хотите что-то из внутри вернуть к исходному размеру Вы можете вычислить процент, обратный проценту родителя, но, скорее всего, это будет уродливое число, и вы можете получить ошибки округления в 1px, если вы не можете / не можете указать это с полной точностью. В этом случае может быть хорошей идеей сделать шаг назад и посмотреть на селектор, посмотреть, не можете ли вы применить размер более избирательно, чтобы избежать необходимости отменять его.

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

2 голосов
/ 16 ноября 2008

Как объясняется в этом размере шрифта CSS статья:

В идеале? Самая лучшая единица измерения - НЕТ ВСЕХ! Пусть пользовательский агент определяет отображение в соответствии с предпочтениями пользователя - НО! Мы также знаем, что в большинстве проектов это не очень практичный подход. Лично? Я предпочитаю гибкость .em и .px "mix 'n match" - так как пользовательские агенты становятся более "удобными для пользователя", размер дизайнера НЕ будет настолько проблематичным или противоречивым, как сейчас.

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

1 голос
/ 16 ноября 2008

подумайте о своих родителях, бабушках и дедушках, просматривающих вашу веб-страницу, с их бифокальными очками (или без них). Если они не могут прочитать это, потому что вы сделали все шрифты 8px, они, вероятно, пойдут куда-нибудь еще. Если они нажимают «размер текста >> наибольший» и ничего не происходит, они, вероятно, отправятся куда-то еще.

учитывая, что - по крайней мере, в США - многие веб-серферы - это пожилые люди со временем, деньгами и плохим зрением, использование em для шрифтов для публичных веб-сайтов может оказаться очень полезным; 1003 *

1 голос
/ 16 ноября 2008

OS X и Windows по-разному обрабатывают как минимум pt размеры шрифта, так что это, безусловно, полный запрет. С другой стороны, есть ли веская причина , а не использовать относительные размеры шрифта? Это не так, как будто это были взвешенные дебаты с хорошими аргументами с обеих сторон. Скорее, с одной стороны есть несколько преимуществ (которые могут быть не очевидны все время). Но с другой стороны, есть только очевидные преимущества, которые при малейшем исследовании оказываются бесполезными. 1

На самом деле, я могу думать только о одном аргументе для абсолютных размеров шрифта, а именно о том, что он облегчает реализацию CSS для готового дизайна, копируя размеры шрифтов, используемых в программном обеспечении для проектирования. В действительности последовательный дизайн будет использовать только несколько разных размеров шрифта, которые являются простыми соотношениями друг друга (скажем, 80%) и, таким образом, могут быть тривиально выражены через em или %.


1) Вы сказали:

или хотите ли вы где-нибудь изменить размер шрифта, не затрагивая вложенные элементы

Что именно вы подразумеваете под этим? Весь смысл CSS состоит в том, что вы (как правило) изменяете атрибуты элемента относительно его родителей. Почему это должно быть проблемой?

Вся дискуссия немного напоминает дебаты «не используйте таблицы раскладок». Аргументы могут показаться непрофессионалами 2 , но в любом случае просто нет причин не следовать им. Это не значит, что просить аргументы неправильно! Но есть много бессмысленных нарушений этого правила.


2) Кстати, я не профессионал веб-дизайна. Примите мои технические мнения здесь только с небольшим количеством соли. Но аргумент действительно не зависит от используемой технологии.

0 голосов
/ 16 ноября 2008

Использование относительных единиц для размера шрифта, высоты строки и верхнего / нижнего поля и отступов также сохранит типографский масштаб без изменений, поскольку пользователи увеличивают / уменьшают размер текста. Типография и дизайн люди это оценят =)

0 голосов
/ 16 ноября 2008

Единственная веская причина в том, что многие все еще используют IE6. Просто это. Возможно, было бы неплохо в конце 2008 года не уделять больше внимания IE6. Но сложно игнорировать IE6. Я работаю веб-дизайнером / разработчиком в большой компании в Италии, и многие из наших сотрудников или клиентов на своих рабочих компьютерах сейчас просматривают Интернет с помощью IE6.

Почему? Они не имеют прав администратора и не могут устанавливать anithing на своих компьютерах, а системные администраторы всегда слишком заняты, чтобы обновить компьютеры в каждом офисе. Возможно, эти люди обновятся до IE7 (что-то вроде Firefox - мечта), когда их жесткие диски нужно будет заменить.

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

...