@@ -794,8 +794,25 @@ img {
794794
795795<h2 id="page-float-placement">Page float placement</h2>
796796
797- Page floats are placed one by one in the order they appear in the DOM. The
798- placement of a single page float is a process that has to be terminated
797+ The order of page float placement is determined by the following rules:
798+
799+ <ol>
800+ <li>
801+ A page float is placed before any page floats with a <a>float reference</a>
802+ that is a descendant of its <a>float reference</a> .
803+ </li>
804+ <li>
805+ Page floats with the same <a>float reference</a> are placed in the order they
806+ appear in the DOM.
807+ </li>
808+ <li>
809+ Page floats whose float references are not descendants of one-another and
810+ that do not have the same <a>float reference</a> are placed in the order
811+ they appear in the DOM.
812+ </li>
813+ </ol>
814+
815+ The placement of a single page float is a process that has to be terminated
799816 entirely before the placement of a subsequent page float can be initiated. The
800817 placement process consists of the following steps:
801818
@@ -807,14 +824,15 @@ img {
807824 initially set to be the same as the <a>initial float reference</a> .</li>
808825
809826 <li> Determine if the given <a>float reference</a> has enough space or can be
810- expanded to host the page float, if the rules of 'float stacking' and 'float
811- reference growth' are to be followed. If this is not the case, and the
812- <a>float reference</a> is not the last <a>fragmentation container</a> within the given
813- <a>fragmentation context</a> , then make the following <a>fragmentation container</a>
814- within the given <a>fragmentation context</a> the <a>float reference</a> . Repeat this
815- step until the <a>float reference</a> can be expanded enough to host the page
816- float or it is the last <a>fragmentation container</a> within the given
817- <a>fragmentation context</a> .</li>
827+ expanded to host the page float, if the rules of <a href="#float-stacking">
828+ float stacking</a> and <a href="#float-reference-growth">float reference
829+ growth</a> are to be followed. If this is not the case, and the <a>float
830+ reference</a> is not the last <a>fragmentation container</a> within the given
831+ <a>fragmentation context</a> , then make the following <a>fragmentation
832+ container</a> within the given <a>fragmentation context</a> the <a>float
833+ reference</a> . Repeat this step until the <a>float reference</a> can be
834+ expanded enough to host the page float or it is the last <a>fragmentation
835+ container</a> within the given <a>fragmentation context</a> .</li>
818836
819837 <li> If the <a>float reference</a> is the last <a>fragmentation container</a> within
820838 the given <a>fragmentation context</a> , and it has not enough space and cannot be
@@ -823,9 +841,10 @@ img {
823841 <ol>
824842 <li> If the <a>fragmentation context</a> allows for the addition of another
825843 <a>fragmentation container</a> and an additional <a>fragmentation container</a>
826- would have the needed size to host the page float, a new 'fragmentation
827- container' is added to the end of the <a>fragmentation context</a> . The 'float
828- reference' is set the newly created <a>fragmentation container</a> .</li>
844+ would have the needed size to host the page float, a new <a>fragmentation
845+ container</a> is added to the end of the <a>fragmentation context</a> . The
846+ <a>float reference</a> is set the newly created <a>fragmentation
847+ container</a> .</li>
829848
830849 <li> Otherwise, if the <a>fragmentation container</a> is a region, then the
831850 'regionOverset` attribute of the <a>fragmentation container</a> is set to
@@ -854,7 +873,7 @@ float with the same <a>float reference</a> and the same 'float' value, where N i
854873the 'float-offset' value of the page float. For the placement it is assumed that
855874the page floats in the block directions fill the entire line size of the <a>float
856875reference</a> and page floats in the inline direction fill the entire block size
857- of the <a>float reference<a>.
876+ of the <a>float reference</ a> .
858877
859878If the page float has a defined 'clear' -value, then the <a>float reference</a> in
860879which the page float is placed is closed for all subsequent page floats that
@@ -1075,9 +1094,14 @@ p { float-reference: page; float: top; float-defer: last }
10751094 :
10761095
10771096 <ol>
1097+ <li>
1098+ Make the order of page float placement determined both by DOM and how high
1099+ in the DOM the page float reference is.
1100+ </li>
10781101 <li>
10791102 Specify use of padding edges for float references and margin edges for page
10801103 floats for placement.
1104+ </li>
10811105 <li>
10821106 Term change: fragmentation flow -> fragmentation context.
10831107 </li>
0 commit comments