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

Что такое размер шрифта em? Сколько это в пикселях?

Я хочу знать, что такое em, и сколько 1em при преобразовании в пиксели (px). Я также читал где-нибудь о некоторой ошибке IE, чтобы преодолеть, какой размер шрифта тела должен быть установлен, но не мог многого добиться. Может кто-нибудь объяснить это подробно?

4b9b3361

Ответ 1

Несмотря на то, что вы можете прочитать в другом месте, существует прямая связь нет между em и px.

Как говорится в одной из ссылок:

значение "em" по ширине прописной буквы M

Таким образом, для каждого шрифта это будет отличаться. Узкий шрифт может иметь одинаковую высоту (в px) в виде расширенного шрифта, но размер em будет другим.

EDIT три года спустя:

Сейчас есть много источников, которые говорят, что 1em = размер шрифта (в px). То есть, когда вы пишете font-size:16px, тогда 1em = 16px. Это все еще не согласуется с источником Adobe (в котором указано 1em = размер шрифта в pt), но в любом случае это кажется странным; размер em был бы слишком большим с конденсированными шрифтами и слишком мал с расширенными шрифтами.

Я собираюсь сделать несколько тестовых страниц и сам убедиться.

А также:

Я вижу, что никто (включая меня) не ответил на вопрос (который был скрыт):

Я также где-то читал о каком-то ie ошибке и о том, чтобы преодолеть этот размер шрифта тела для чего-то

Согласно этой странице, вам нужно добавить это в свой css: html{ font-size:100%; }. На этой странице шесть лет, и я не читал (сотни) комментариев, поэтому я не знаю, насколько это актуально.

Ответ 2

М-принцип, согласно которому em основан на букве M и зависит от шрифта, часто является мифом! Документация W3c em очень кратко описывает, как соотносятся ems и пиксели. Использование буквы M для вычисления размеров шрифта является, по крайней мере, чрезмерно сложным и ненужным.

Единица "em" равна вычисленному значение свойства font-size элемент, на котором он используется. исключение - когда "em" встречается в значение свойства font-size и в этом случае это относится к размер шрифта родительского элемента. Это может использоваться для вертикальной или горизонтальной измерение.

Вот основные моменты.

  • Без увеличения предка 1em точно соответствует атрибуту размера шрифта пикселя.

  • Увеличение предка с помощью x-ems или x-percent означает, что вы просто умножаетесь на очевидные отношения x или x/100. Таким образом, простой цикл java- script будет вычислять точные размеры шрифта, предполагая: (1) нет C.S.S, чтобы расстроить java- script; и (2) у какого-то предка есть размер шрифта, установленный в абсолютных единицах. Это вычисленное значение, о котором говорит документация. Расчет руки может обойти C.S.S., но абсолютная единица все еще должна быть найдена в цепочке предков.

  • Поскольку ems измеряют ширину, вы всегда можете вычислить точный размер шрифта, создав div длиной 1000 em и разделив его свойство client-Width на 1000. Поскольку ems округлены до ближайшей тысячной, вам нужно 1000 ems для избегайте ошибочного усечения пикселей.

  • Вероятно, вы можете создать шрифт, где M-принцип терпит неудачу, поскольку em основан на атрибуте font-size, а не на фактическом шрифте. Предположим, у вас есть странный шрифт, где M равно 1/3 размера других символов, а размер шрифта - 10 пикселей. Разве вы не думаете, что размер шрифта в пикселях в какой-то мере гарантирует максимальную высоту символа, и поэтому M не будет 10 пикселей, а все остальные символы - 30 пикселей?

Предупреждение

  • Основное предостережение (2) состоит в том, что относительное отношение ex-единицы дико неустойчиво. В том же браузере с постоянным шрифтом относительное отношение может меняться с размером шрифта. Относительное соотношение ex также изменяется с браузером даже с тем же размером шрифта и безопасным шрифтом браузера, таким как Georgia. Это довольно хорошая причина, чтобы никогда не использовать ex-unit, если вы хотите соответствия. Если используется ex-единица, невозможно вычислить размер шрифта через цепочку предков.

Ответ 3

Он рассчитан на размер вашего шрифта вашего тела. Вы можете использовать конвертер pixel to em, чтобы узнать, что именно на вашем сайте.

PxToEm

Ответ 4

em - это измерение, первоначально используемое в печатной типографии (согласно википедии). Вот некоторые вещи, которые следует учитывать: если em определяется как тип 12pt, тогда em составляет 12/72 дюйма печатной страницы; но если вы определяете em как 16px, его ширина в дюйме зависит от разрешения носителя. (Примечание: разрешение 72ppi на 120ppi раньше считалось стандартом "безопасного браузера" до появления мобильных устройств.) Итак, когда ваши пользователи на устройстве шириной 300 пикселей, 1em, как 16px, - это много "недвижимости". На мой взгляд, наилучшее использование измерений em - это определение абзацев текстов для эффективного баланса белого пространства, а не для макета страницы или позиционирования.

Ответ 5

EM - единица измерения, пропорциональная размеру точки шрифта.

Ответ 6

эта ссылка может помочь вам http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css

Как указано в этой статье:

Мы знаем, что 1em всегда равно размеру шрифта родительского элемента, поэтому:

1 ÷ parent font-size × required pixel value = em value

Для ваших закладок: Пиксельная таблица преобразования ems для размеров шрифтов.

Ответ 7

Названный в честь буквы "М", единица em имеет давнюю традицию в типографии, где она используется для измерения горизонтальной ширины. Например, длинная тире, часто встречающаяся в американских текстах (-), называется "em-dash", поскольку она исторически имеет ту же ширину, что и буква "M". Его более узкий кузен (-), часто встречающийся в европейских текстах, также называется "en-dash".

С течением времени значение "em" изменилось. Не все шрифты имеют в них букву "М" (например, китайский), но все шрифты имеют высоту. Таким образом, этот термин означает высоту шрифта, а не ширину буквы "М".

Из "Удивительного подразделения и других лучших практик" https://www.w3.org/WAI/GL/css2em.htm