From 6f57a9b4bae1028eebd256a6f10f77a14c59dd6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Fri, 23 Jun 2017 23:06:25 +0200 Subject: [PATCH] style: Fix rem computation on the root element. Bug: 1375930 Reviewed-By: heycam MozReview-Commit-ID: DK98SS1w5nO --- components/style/values/specified/length.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/components/style/values/specified/length.rs b/components/style/values/specified/length.rs index 61789ac8d0d7..d40f6770d3c1 100644 --- a/components/style/values/specified/length.rs +++ b/components/style/values/specified/length.rs @@ -112,7 +112,6 @@ impl FontRelativeLength { let reference_font_size = base_size.resolve(context); - let root_font_size = context.device.root_font_size(); match *self { FontRelativeLength::Em(length) => reference_font_size.scale_by(length), FontRelativeLength::Ex(length) => { @@ -149,7 +148,19 @@ impl FontRelativeLength { } } } - FontRelativeLength::Rem(length) => root_font_size.scale_by(length) + FontRelativeLength::Rem(length) => { + // https://drafts.csswg.org/css-values/#rem: + // + // When specified on the font-size property of the root + // element, the rem units refer to the property’s initial + // value. + // + if context.is_root_element { + reference_font_size.scale_by(length) + } else { + context.device.root_font_size().scale_by(length) + } + } } } }