Add background-position

This commit is contained in:
Simon Sapin 2020-01-13 17:40:47 +01:00
parent b1dcd5ecb6
commit c73dc885bb
3 changed files with 13 additions and 5 deletions

View file

@ -411,11 +411,19 @@ impl<'a> BuilderForBoxFragment<'a> {
// FIXME: background-repeat
let tile_spacing = units::LayoutSize::zero();
let tile_stride = tile_size + tile_spacing;
// FIXME: background-position
let positioned_tile_origin = positioning_area.origin;
// https://drafts.csswg.org/css-backgrounds/#background-position
let position_percentages = positioning_area.size - tile_size;
let positioned_tile_origin = positioning_area.origin +
units::LayoutSize::new(
get_cyclic(&b.background_position_x.0, index)
.percentage_relative_to(Length::new(position_percentages.width))
.px(),
get_cyclic(&b.background_position_y.0, index)
.percentage_relative_to(Length::new(position_percentages.height))
.px(),
);
let offset = positioned_tile_origin - clipping_area.origin;
let first_tile_origin = positioned_tile_origin -

View file

@ -35,7 +35,7 @@ ${helpers.predefined_type(
${helpers.predefined_type(
"background-position-" + axis,
"position::" + direction + "Position",
engines="gecko servo-2013",
engines="gecko servo-2013 servo-2020",
initial_value="computed::LengthPercentage::zero()",
initial_specified_value="SpecifiedValue::initial_specified_value()",
spec="https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-" + axis,

View file

@ -217,7 +217,7 @@
</%helpers:shorthand>
<%helpers:shorthand name="background-position"
engines="gecko servo-2013"
engines="gecko servo-2013 servo-2020"
flags="SHORTHAND_IN_GETCS"
sub_properties="background-position-x background-position-y"
spec="https://drafts.csswg.org/css-backgrounds-4/#the-background-position">