Я хочу знать, что такое em
, и сколько 1em при преобразовании в пиксели (px
). Я также читал где-нибудь о некоторой ошибке IE, чтобы преодолеть, какой размер шрифта тела должен быть установлен, но не мог многого добиться. Может кто-нибудь объяснить это подробно?
Что такое размер шрифта em? Сколько это в пикселях?
Ответ 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, чтобы узнать, что именно на вашем сайте.
Ответ 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
Ответ 8
Вот хорошее объяснение:
Ответ 9
em почти совпадает с процентом, я предлагаю читать http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/