Селектор *
соответствует всем элементам.Правила, определенные в этом (*
) селекторе, имеют приоритет над правилами, определенными для родительских элементов.
Таким образом, даже если по умолчанию наследуется font-size
, размер шрифта в .foo
не влияетразмер шрифта на дочернем элементе span
.
Вы можете прочитать о *
, универсальном селекторе - особенно о том, когда его использовать.
По умолчанию font-size
- этообычно это то, что вы хотите определить для элемента html
.Что решило бы вашу проблему:
html { font-size: 10px; }
.foo { font-size: 3em; }
Таким образом, размер шрифта span
, унаследованный от .foo
, имеет приоритет над font-size
, унаследованным от html
.В результате вышеприведенного кода текст внутри div
с классом .foo
и текст внутри span
будут иметь одинаковое значение (3em) и одинаковое вычисленное значение (3 раза по 10px).
Если вы сделали:
html { font-size: 10px; }
.foo { font-size: 3em; }
span { font-size: 3em; }
Span все равно будет иметь значение 3em, но вычисленное значение будет 10px * 3 * 3 (90px), в 3 раза больше, чем размер шрифта .foo
.Это потому, что em относится к font-size
родительского элемента.