@@ -1542,11 +1542,11 @@ Track Sizes</h4>
1542
1542
1543
1543
<dt> <dfn><<flex [0,∞]>></dfn>
1544
1544
<dd>
1545
- A non-negative dimension with the unit ''fr'' specifying the track's <dfn dfn noexport>flex factor</dfn> .
1545
+ Specifies the track's <dfn dfn noexport>flex factor</dfn> .
1546
1546
Each <<flex>> -sized track takes a share of the remaining space in proportion to its <a>flex factor</a> .
1547
1547
For example, given a track listing of ''1fr 2fr'' ,
1548
1548
the tracks will take up ⅓ and ⅔ of the <a>leftover space</a> , respectively.
1549
- See [[#fr-unit ]] for more details.
1549
+ See [[#flexible-tracks ]] for more details.
1550
1550
1551
1551
Note: If the sum of the <a>flex factors</a> is less than 1,
1552
1552
they'll take up only a corresponding fraction of the <a>leftover space</a> ,
@@ -1850,22 +1850,19 @@ Interpolation/Combination of ''repeat()''</h5>
1850
1850
They otherwise combine <a lt=discrete>discretely</a> .
1851
1851
1852
1852
<!--
1853
- ████████ ████████ ██ ██ ██ ██ ████ ████████
1854
- ██ ██ ██ ██ ██ ███ ██ ██ ██
1855
- ██ ██ ██ ██ ██ ████ ██ ██ ██
1856
- ██████ ████████ ██ ██ ██ ██ ██ ██ ██
1857
- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
1858
- ██ ██ ██ ██ ██ ██ ███ ██ ██
1859
- ██ ██ ██ ███████ ██ ██ ████ ██
1853
+ ████████ ██ ████████ ██ ██ ████ ████████ ██ ████████
1854
+ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
1855
+ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
1856
+ ██████ ██ ██████ ███ ██ ████████ ██ ████ ██
1857
+ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
1858
+ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
1859
+ ██ ████████ ████████ ██ ██ ████ ████████ ████ ████ ██████ ██
1860
1860
-->
1861
1861
1862
- <h4 id='fr-unit '>
1863
- Flexible Lengths: the ''fr'' unit </h4>
1862
+ <h4 id='flexible-tracks '>
1863
+ Flexible Tracks </h4>
1864
1864
1865
- A <dfn export>flexible length</dfn> or <dfn><<flex>></dfn> is a dimension
1866
- with the <dfn value for="<flex>" lt="fr|fr unit">fr</dfn> unit,
1867
- which represents a fraction of the <a>leftover space</a> in the <a>grid container</a> .
1868
- Tracks sized with ''fr'' units are called <dfn>flexible tracks</dfn>
1865
+ Tracks sized using <<flex>> values are called <dfn>flexible tracks</dfn>
1869
1866
as they flex in response to <a>leftover space</a>
1870
1867
similar to how <a>flex items</a> with a zero base size fill space in a <a>flex container</a> .
1871
1868
@@ -1876,45 +1873,6 @@ Flexible Lengths: the ''fr'' unit</h4>
1876
1873
Each column or row's share of the <a>leftover space</a> can be computed as the column or row's
1877
1874
<code> <flex> * <leftover space> / <sum of all <a>flex factors</a> ></code> .
1878
1875
1879
- <details class=note>
1880
- <summary> <<flex>> values between 0fr and 1fr have a somewhat special behavior:
1881
- when the sum of the flex factors is less than 1,
1882
- they will take up less than 100% of the leftover space.</summary>
1883
-
1884
- A track’s <<flex>> value
1885
- is effectively a request for some proportion of the leftover space,
1886
- with ''1fr'' meaning “100% of the leftover space”;
1887
- then if the tracks in that axis are requesting more than 100% in total,
1888
- the requests are rebalanced to keep the same ratio but use up exactly 100% of it.
1889
- However, if the tracks request <em> less</em> than the full amount
1890
- (such as three tracks that are each ''.25fr'' )
1891
- then they'll each get exactly what they request
1892
- (25% of the leftover space to each,
1893
- with the final 25% left unfilled).
1894
- See [[#algo-flex-tracks]] for the exact details
1895
- of how leftover space is distributed.
1896
-
1897
- This pattern is required for continuous behavior as ''fr'' values approach zero
1898
- (which means the tracks wants <em> none</em> of the leftover space).
1899
- Without this, a ''1fr'' track would take all of the leftover space;
1900
- but so would a ''0.1fr'' track,
1901
- and a ''0.01fr'' track,
1902
- etc.,
1903
- until finally the value is small enough to underflow to zero
1904
- and the track suddenly takes up none of the leftover space.
1905
- With this behavior,
1906
- the track instead gradually takes less of the leftover space
1907
- as its flex factor shrinks below ''1fr'' ,
1908
- smoothly transitioning to taking none of the leftover space at zero.
1909
-
1910
- Unless this “partial fill” behavior is <em> specifically</em> what's desired,
1911
- authors should stick to values ≥ 1;
1912
- for example, using ''1fr'' and ''2fr'' is usually better
1913
- than using ''.33fr'' and ''.67fr'' ,
1914
- as they're more likely to behave as intended
1915
- if tracks are added or removed.
1916
- </details>
1917
-
1918
1876
When the available space is infinite
1919
1877
(which happens when the <a>grid container</a> ’s width or height is <a>indefinite</a> ),
1920
1878
flex-sized <a>grid tracks</a> are sized to their contents while retaining their respective proportions.
@@ -1925,10 +1883,6 @@ Flexible Lengths: the ''fr'' unit</h4>
1925
1883
The maximum of those is used as the resolved ''1fr'' length (the <dfn>flex fraction</dfn> ),
1926
1884
which is then multiplied by each <a>grid track</a> ’s <a>flex factor</a> to determine its final size.
1927
1885
1928
- Note: <<flex>> values are not <<length>> s
1929
- (nor are they compatible with <<length>> s, like some <<percentage>> values),
1930
- so they cannot be represented in or combined with other unit types in ''calc()'' expressions.
1931
-
1932
1886
<!--
1933
1887
██████ ███████ ██ ██ ████████ ██ ██ ████████ ████████ ████████
1934
1888
██ ██ ██ ██ ███ ███ ██ ██ ██ ██ ██ ██ ██ ██
@@ -4902,6 +4856,10 @@ Changes since the <a href="https://www.w3.org/TR/2020/CRD-css-grid-1-20201218/">
4902
4856
instead use the <a>grid area</a> determined in [[#abspos-items]] .</del>
4903
4857
</blockquote>
4904
4858
4859
+ <li id="change-2020-fr-unit">
4860
+ Moved the definition of <<flex>> to [[css-values-4#fractions]] ,
4861
+ as other specs also make use of it.
4862
+ (<a href="https://github.com/w3c/csswg-drafts/issues/8027">Issue 8027</a> )
4905
4863
</ul>
4906
4864
4907
4865
<h3 id="changes-202008">
0 commit comments