Подтвердить что ты не робот

'font-' vs 'text-' в именах свойств CSS

В чем разница между терминами "текст" и "шрифт", которые используются в именах свойств CSS? Они имеют в виду одно и то же, или существует семантическая разница между именем свойства CSS, начинающимся с font-, и одним, начинающимся с text-?

Например, почему у нас есть эти свойства CSS:

font-size: 34px;
text-decoration: underline;

вместо того, чтобы быть названным так?

font-size: 34px;
font-decoration: underline;

или как это?

text-size: 34px;
text-decoration: underline;

Существует ли семантическая разница в способе использования font- и text-, или выбор префикса полностью произвольный?

4b9b3361

Ответ 1

Насколько я понимаю, это:

Текст: символы, которые вы рисуете с выбранным (или по умолчанию) шрифтом.

Шрифт: формы символов.

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

Вот почему у вас есть font-style: italic, а не text-style: italic, так как фактические фигуры меняются, когда вы имеете курсив. То же самое происходит с font-weight vs text-weight.

Надеюсь, что это поможет:)

ИЗМЕНИТЬ:

Если вы посмотрите на свойства, начинающиеся с text- и те, которые начинаются с font-, вы можете видеть явное различие:

text-align
text-decoration
text-indent
text-justify
text-outline
text-overflow
text-shadow
text-transform
text-wrap

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

font
font-family
font-size
font-style
font-variant
font-weight
@font-face
font-size-adjust
font-stretch

все используются для отображения символов на экране.

Ответ 2

Части имени свойства CSS не имеют значения, а имя свойства в целом имеет только значение, назначенное ему в спецификациях CSS (или черновиках). Обычно имена, интерпретируемые как английские слова, наводят на размышления о значении, но имя не определяет смысл, а некоторые имена прямо вводят в заблуждение. (Например, white-space влияет на деление на строки даже в контекстах, где не задействованы пробельные символы.)

Итак, имена - это просто идентификаторы, но в назначении имен может быть какая-то систематика. Как это происходит, имена свойств, начинающиеся с font-, относятся к выбору шрифта, используемого для визуализации символов, или к конкретному способу использования шрифта. Имена свойств, начинающиеся с text-, относятся к другим аспектам форматирования текста (символов).

Это разделение относительно ясное, но оно зависит от методов: некоторые особенности форматирования связаны с шрифтами из-за того, как работают технологии шрифтов, а некоторые нет.

Деление отражается в разделе "модуль" CSS3: функции, связанные с шрифтом, определены в CSS Fonts Module Level 3 (который определяет свойства с имена, начинающиеся с font), тогда как другие функции форматирования текста в основном определяются в CSS Text Module Level 3 (который определяет некоторые свойства с именами, начинающимися с text-, но и другими свойствами).

Ответ 3

Оглядываясь на свойства font-, перечисленные в Справочник MDN CSS, мне кажется, что свойства, начинающиеся с font-, влияют, или на как минимум, могут повлиять на выбор шрифта из семейства шрифтов, чтобы использовать его для рисования определенного символа. Свойства, начинающиеся с text-, никогда не делают этого, но делают все виды других вещей, включая пост-рендеринг, для добавления текстовых эффектов, таких как тени, которые не зависят от выбора глифа.

Например...

  • font-family - предоставляет список семейств шрифтов, из которых можно выбрать шрифт, с помощью которого можно отобразить каждый символ; очевидно, это влияет на выбор глифов.
  • font-weight - где это возможно, показывает текст на правильном уровне смелости, выбирая подходящий полужирный шрифт из семейства шрифтов.
  • font-size - возможно, влияет на выбранный фактический шрифт, поскольку не все форматы шрифтов произвольно масштабируемы. Это подтверждается следующей цитатой из шрифтов-семейных документов (внимание мое):

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

    (Хотя я предполагаю, что это в основном историческая проблема, так как я не думаю, что сегодня не используются масштабируемые форматы шрифтов.)

  • font-size-adjust - как и выше.

  • font-stretch - чтобы процитировать документы:

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

... и так далее. Не все эти свойства всегда влияют на выбор шрифта; например, font-size, очевидно, относится к рендерингу глифов, а не выбору шрифта, в случае масштабируемых шрифтов, а свойства font-weight и font-style могут привести к тому, что браузер будет синтезировать полужирный или курсивный глиф, а не использовать полужирный или курсив font, as отмечен W3:

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

То, что имеют свойства font-, тем не менее, заключается в том, что они являются свойствами, которые могут потенциально повлиять на выбор шрифта и глифа. Поэтому выбор того, когда использовать префикс font- или text-, кажется, не был сделан произвольно.