diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 4995e9abfce..3f741666a89 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -3385,7 +3385,6 @@ fn static_assert() { <% text_align_keyword = Keyword("text-align", "start end left right center justify -moz-center -moz-left -moz-right char", gecko_strip_moz_prefix=False) %> - <% text_align_reachable_keyword = Keyword("text-align", "start end left right center justify char") %> ${impl_keyword('text_align', 'mTextAlign', text_align_keyword, need_clone=False)} ${impl_keyword_clone('text_align', 'mTextAlign', text_align_keyword)} diff --git a/components/style/style_adjuster.rs b/components/style/style_adjuster.rs index b8a71b223d7..78d44c8007e 100644 --- a/components/style/style_adjuster.rs +++ b/components/style/style_adjuster.rs @@ -259,6 +259,29 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> { } } + /// -moz-center, -moz-left and -moz-right are used for HTML's alignment. + /// + /// This is covering the
...
case. + /// + /// In this case, we don't want to inherit the text alignment into the + /// table. + #[cfg(feature = "gecko")] + fn adjust_for_table_text_align(&mut self) { + use properties::longhands::text_align::computed_value::T as text_align; + if self.style.get_box().clone_display() != display::table { + return; + } + + match self.style.get_inheritedtext().clone_text_align() { + text_align::_moz_left | + text_align::_moz_center | + text_align::_moz_right => {} + _ => return, + } + + self.style.mutate_inheritedtext().set_text_align(text_align::start); + } + /// Adjusts the style to account for various fixups that don't fit naturally /// into the cascade. /// @@ -274,6 +297,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> { self.adjust_for_overflow(); #[cfg(feature = "gecko")] { + self.adjust_for_table_text_align(); self.adjust_for_contain(); } #[cfg(feature = "servo")]