Вопрос по html, css, font-size – Что такое «em», если размер шрифта документа указан в ems?

11

В CSSem является относительной единицей, основанной на размере шрифта документа. Итак, что именноem тогда, если размер шрифта документаitself измеряется в ems? Предположим, мы говорим:

<style type = "text/css">
body
{
    font-size: 1em;
}
</style>

Итак,em теперь рекурсивно определяется. Так как же это обрабатывается браузером?

W3C документы сказать:

The 'em' unit is equal to the computed value of the 'font-size' property of the element on which it is used. The exception is when 'em' occurs in the value of the 'font-size' property itself, in which case it refers to the font size of the parent element. It may be used for vertical or horizontal measurement. (This unit is also sometimes called the quad-width in typographic texts.)

Но что, если элементdocument.bodyтак нет родительского элемента?

em основан наfont-size данного элемента, или если он установлен наfont-sizeтогда это относительно того из его родителя. Если вам нужна единица, относящаяся кfont-size корня документа, это было быrem. BoltClock♦

Ваш Ответ

3   ответа
24

body не является корневым элементом документа & # x2014; это очень распространенное заблуждение. Родительский элементbody являетсяhtml, чей размер шрифта по умолчанию соответствует настройке размера шрифта в браузере по умолчанию (обычно16px).1

Это относится даже если вы установилиfont-size значение в ems наboth body а такжеhtml, Итак, если вы сделали это:

html, body { font-size: 2em; }

Затем, принимая размер шрифта по умолчанию16px как установлено пользователем,html будет иметь размер шрифта32px (в два раза больше размера шрифта по умолчанию) иbody будет иметь размер шрифта64px (дважды его родителя,html).

1 To be precise, the html element's default font size is начальное значение,medium, что в соответствии со спецификацией соответствует предпочтительному размеру шрифта по умолчанию, установленному пользователем.

Это не предписано никаким стандартом.
@ Channel72 Вы можете изменить размер, используемый браузером по умолчанию, в настройках пользователя во всех важных браузерах.
Это16px по умолчанию требуется какой-то стандарт, или это просто значение, которому следуют большинство (все?) браузеров? Channel72
+1 Исключительно хороший ответ.
0

значение по умолчанию 16px, если ни один родительский элемент не определил его.

Также посмотрите это:http://pxtoem.com/

-2

каким будет размер шрифта по умолчанию в браузере, который будет указан в физическом размере, например & APOS; 10pt & APOS ;.

Нет, ваш пример вводит в заблуждение. Размер шрифта по умолчанию в браузере обычно не указывается вpt но вpx, Например. и Chrome, и Firefox позволяют указывать только размер шрифта браузера по умолчанию вpx.

Похожие вопросы