From e05c673df310d7a87737cae750064fff11085e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Thu, 17 Aug 2017 21:38:16 +0200 Subject: [PATCH] style: Serialize percentages first in specified calc() expressions. --- components/style/values/specified/calc.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/components/style/values/specified/calc.rs b/components/style/values/specified/calc.rs index 549d4ae6092..151d8054143 100644 --- a/components/style/values/specified/calc.rs +++ b/components/style/values/specified/calc.rs @@ -125,6 +125,13 @@ impl ToCss for CalcLengthOrPercentage { dest.write_str("calc(")?; + // NOTE(emilio): Percentages first because of web-compat problems, see: + // https://github.com/w3c/csswg-drafts/issues/1731 + if let Some(val) = self.percentage { + first_value_check!(val.0); + val.abs().to_css(dest)?; + } + // NOTE(emilio): The order here it's very intentional, and alphabetic // per the spec linked above. serialize!(ch, em, ex); @@ -143,11 +150,6 @@ impl ToCss for CalcLengthOrPercentage { serialize!(rem, vh, vmax, vmin, vw); - if let Some(val) = self.percentage { - first_value_check!(val.0); - val.abs().to_css(dest)?; - } - dest.write_str(")") } }