mirror of
https://github.com/servo/servo.git
synced 2025-08-10 07:55:33 +01:00
style: Support multiple track sizes for grid-auto-{columns|rows}.
Support `<track-size>+` on the implicit track sizing properties, grid-auto-columns and grid-auto-rows. Differential Revision: https://phabricator.services.mozilla.com/D38408
This commit is contained in:
parent
69191d8b8c
commit
29f6db4d16
6 changed files with 76 additions and 22 deletions
|
@ -6,8 +6,8 @@
|
|||
//! [grids](https://drafts.csswg.org/css-grid/)
|
||||
|
||||
use crate::parser::{Parse, ParserContext};
|
||||
use crate::values::generics::grid::{GridTemplateComponent, RepeatCount, TrackBreadth};
|
||||
use crate::values::generics::grid::{LineNameList, TrackRepeat, TrackSize};
|
||||
use crate::values::generics::grid::{GridTemplateComponent, ImplicitGridTracks, RepeatCount};
|
||||
use crate::values::generics::grid::{LineNameList, TrackBreadth, TrackRepeat, TrackSize};
|
||||
use crate::values::generics::grid::{TrackList, TrackListValue};
|
||||
use crate::values::specified::{Integer, LengthPercentage};
|
||||
use crate::values::{CSSFloat, CustomIdent};
|
||||
|
@ -95,6 +95,21 @@ impl Parse for TrackSize<LengthPercentage> {
|
|||
}
|
||||
}
|
||||
|
||||
impl Parse for ImplicitGridTracks<TrackSize<LengthPercentage>> {
|
||||
fn parse<'i, 't>(
|
||||
context: &ParserContext,
|
||||
input: &mut Parser<'i, 't>,
|
||||
) -> Result<Self, ParseError<'i>> {
|
||||
use style_traits::{Separator, Space};
|
||||
let track_sizes = Space::parse(input, |i| TrackSize::parse(context, i))?;
|
||||
if track_sizes.len() == 1 && track_sizes[0].is_auto() {
|
||||
//`auto`, which is the initial value, is always represented by an empty slice.
|
||||
return Ok(Default::default());
|
||||
}
|
||||
return Ok(ImplicitGridTracks(track_sizes.into()));
|
||||
}
|
||||
}
|
||||
|
||||
/// Parse the grid line names into a vector of owned strings.
|
||||
///
|
||||
/// <https://drafts.csswg.org/css-grid/#typedef-line-names>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue