You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: css3-flexbox/Overview.src.html
+51-29Lines changed: 51 additions & 29 deletions
Original file line number
Diff line number
Diff line change
@@ -1776,10 +1776,11 @@ <h2 id="pagination">
1776
1776
and restart flexbox layout entirely.
1777
1777
1778
1778
<li>
1779
-
If there are any flexbox items not laid out by the previous step,
1779
+
If there are any flexbox items not laid out by the first step,
1780
1780
rerun the flexbox sizing algorithm
1781
1781
from <ahref="#main-sizing">Main Sizing Determination</a>
1782
-
through <ahref="#cross-sizing">Cross Sizing Determination</a>,
1782
+
through <ahref="#cross-sizing">Cross Sizing Determination</a>
1783
+
using only the items not laid out on a previous line,
1783
1784
and return to the previous step,
1784
1785
starting from the first item not already laid out.
1785
1786
</ol>
@@ -1831,7 +1832,7 @@ <h2 id="pagination">
1831
1832
lay out as much of its contents as will fit in the space left on the page,
1832
1833
and fragment the remaining content onto the next page,
1833
1834
rerunning the flexbox sizing algorithm
1834
-
from <ahref="#line-sizing">Line Sizing Determination</a>
1835
+
from <ahref="#line-sizing">Line Length Determination</a>
1835
1836
through <ahref="#main-alignment">Main-Axis Alignment</a>
1836
1837
into the new page size
1837
1838
using <em>all</em> the contents (including items completed on previous pages).
@@ -1842,7 +1843,7 @@ <h2 id="pagination">
1842
1843
1843
1844
<li>
1844
1845
For each fragment of the flexbox,
1845
-
continue the flexbox layout algorithm
1846
+
rerun the flexbox layout algorithm
1846
1847
from <ahref="#cross-alignment">Cross-Axis Alignment</a>
1847
1848
to its finish.
1848
1849
For all fragments besides the first,
@@ -1855,42 +1856,63 @@ <h2 id="pagination">
1855
1856
would fit entirely within a single flexbox fragment,
1856
1857
it may be shifted into that fragment
1857
1858
and aligned appropriately.
1858
-
</ol>
1859
+
</ol>
1859
1860
1860
1861
<dt>Multi-line row flexbox
1861
1862
<dd>
1862
1863
<ol>
1863
-
<li>Collect items into lines and determine line heights:
1864
-
1865
-
<ol>
1866
-
<li>
1867
-
<p>If 'flex-line-pack' is 'stretch' and flexbox size in block direction is definite, layout of the complete flexbox has to be done first to determine line heights. Layout is done as usual for non-paginated case, but accounting for forced breaks.
1868
-
1869
-
<p>If page size varies, this step may have to be redone, again with complete content; special consideration should be to be given to line breaks to ensure that item at the start of current page is also at the start of a line in this hypothetical layout. This specification currently doesn't define how exactly to achieve that.
1870
-
1871
-
1872
-
<li>Otherwise, items are collected into lines and each line is laid out as a single-line flexbox to determine block-direction size of each line.
1873
-
</ol>
1874
-
1864
+
<li>
1865
+
Run the flexbox sizing algorithm (without regards to pagination),
1866
+
through <ahref="#cross-sizing">Cross Sizing Determination</a>.
1875
1867
1876
-
<li>Lines are added one at a time, until out of available space or a forced break is encountered
1868
+
<li>
1869
+
Lay out as many flexbox lines as possible
1870
+
(but at least one),
1871
+
starting from the first,
1872
+
until there is no more room on the page
1873
+
or a forced break is encountered.
1877
1874
1878
-
<li>Breaks inside items (forced or unforced) are not allowed.
1879
-
<li>If the first flexbox line on a page doesn't fit in
1880
-
cross-axis,
1881
-
<ol>
1882
-
<li>If the flexbox is not at the top of the page, it is moved to the next page.
1883
-
<li>If the flexbox is already at the top of the page, the item may produce overflow. If 'overflow' property of the flexbox is set to 'visible', it is paginated using same rules as visible overflow of blocks in normal flow.
1884
-
</ol>
1885
-
1875
+
<p>
1876
+
If a line doesn't fit on the page,
1877
+
and the line is not at the top of the page,
1878
+
move the line to the next page
1879
+
and restart the flexbox layout algorithm entirely,
1880
+
using only the items in and following this line.
1881
+
1882
+
<p>
1883
+
If a flexbox item itself causes a forced break,
1884
+
rerun the flexbox layout algorithm
1885
+
from <ahref="#main-sizing">Main Sizing Determination</a>
1886
+
through <ahref="#main-alignment">Main-Axis Alignment</a>,
1887
+
using only the items on this and following lines,
1888
+
but with the item causing the break automatically starting a new line
1889
+
in the <ahref="#algo-line-break"> step,
1890
+
then continue with this step.
1891
+
Forced breaks <em>within</em> flexbox items are ignored.
1886
1892
1887
-
<li>If size of flexbox in inline direction is not definite, multi-line layout algorithm is run using the set of items
1888
-
that have fit on the current page.
1893
+
<li>
1894
+
If there are any flexbox items not laid out by the previous step,
1895
+
rerun the flexbox sizing algorithm
1896
+
from <ahref="#line-sizing">Line Length Determination</a>
1897
+
through <ahref="#main-alignment">Main-Axis Alignment</a>
1898
+
with the next page's size
1899
+
and only the items not already laid out.
1900
+
Return to the previous step,
1901
+
but starting from the first line not already laid out.
1889
1902
1890
-
<li>Line packing is done on each page, with content on the page
1903
+
<li>
1904
+
For each fragment of the flexbox,
1905
+
continue the flexbox layout algorithm
1906
+
from <ahref="#cross-alignment">Cross Axis Alignment</a>
1907
+
to its finish.
1891
1908
</ol>
1892
1909
</dl>
1893
1910
1911
+
<pclass='issue'>
1912
+
I think we need to explicitly handle a definite size in the fragmentation axis,
1913
+
and running out of space.
1914
+
(I think it just lays out as continuous media within the overflow area.)
0 commit comments