| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <style> | 3 <style> |
| 4 body { | 4 body { |
| 5 margin: 0; | 5 margin: 0; |
| 6 } | 6 } |
| 7 .inline-flexbox { | 7 .inline-grid { |
| 8 display: inline-flex; | 8 display: inline-grid; |
| 9 background-color: lightgrey; | 9 background-color: lightgrey; |
| 10 margin-top: 5px; | 10 margin-top: 5px; |
| 11 } | 11 } |
| 12 .flexbox { | 12 .grid { |
| 13 display: flex; | 13 display: grid; |
| 14 background-color: grey; | 14 background-color: grey; |
| 15 margin-top: 10px; | 15 margin-top: 10px; |
| 16 } | 16 } |
| 17 .column { | 17 .column { |
| 18 flex-flow: column; | 18 grid-auto-flow: column; |
| 19 } | 19 } |
| 20 .column-reverse { | 20 .firstRowFirstColumn { |
| 21 flex-flow: column-reverse; | 21 grid-column: 1; |
| 22 grid-row: 1; |
| 23 } |
| 24 .secondRowFirstColumn { |
| 25 grid-column: 1; |
| 26 grid-row: 2; |
| 22 } | 27 } |
| 23 </style> | 28 </style> |
| 24 | 29 |
| 25 <body style="position: relative"> | 30 <body style="position: relative"> |
| 26 | 31 |
| 27 <!-- If any of the flex items on the flex container's first line participate | 32 <!-- If any of the grid items whose areas intersect the grid container's first |
| 28 in baseline alignment, the flex container's main-axis baseline is the baseline | 33 row/column participate in baseline alignment, the grid container's baseline is |
| 29 of those flex items. --> | 34 the baseline of those grid items. --> |
| 30 <div> | 35 <div> |
| 31 before text | 36 before text |
| 32 <div class="inline-flexbox" style="height: 50px;"> | 37 <div class="inline-grid column" style="grid-auto-rows: 50px;"> |
| 33 <div style="align-self: flex-end">below</div> | 38 <div style="align-self: end">below</div> |
| 34 <div style="align-self: baseline; margin-top: 15px">baseline</div> | 39 <div style="align-self: baseline; margin-top: 15px">baseline</div> |
| 35 <div style="align-self: flex-start">above</div> | 40 <div style="align-self: start">above</div> |
| 36 </div> | 41 </div> |
| 37 after text | 42 after text |
| 38 </div> | 43 </div> |
| 39 | 44 |
| 40 <!-- This flexbox has a baseline flexitem, but it's orthogonal so it doesn't | 45 <!-- This grid has a baseline item, but it's orthogonal so it doesn't |
| 41 participate in baseline alignment. Instead, the baseline is the first flex | 46 participate in baseline alignment. Instead, the baseline is the first grid |
| 42 item's baseline. --> | 47 item's baseline. --> |
| 43 <div> | 48 <div> |
| 44 before text | 49 before text |
| 45 <div class="inline-flexbox" style="height: 40px"> | 50 <div class="inline-grid column" style="grid-auto-rows: 40px"> |
| 46 <div style="align-self: flex-end">baseline</div> | 51 <div style="align-self: end">baseline</div> |
| 47 <div style="align-self: baseline; -webkit-writing-mode: vertical-rl"></div> | 52 <div style="align-self: baseline; -webkit-writing-mode: vertical-rl"></div> |
| 48 <div style="align-self: flex-start">above</div> | 53 <div style="align-self: start">above</div> |
| 49 </div> | 54 </div> |
| 50 after text | 55 after text |
| 51 </div> | 56 </div> |
| 52 | 57 |
| 53 <div> | 58 <div> |
| 54 before text | 59 before text |
| 55 <div class="inline-flexbox"> | 60 <div class="inline-grid column"> |
| 56 <h2>h2 baseline</h2> | 61 <h2>h2 baseline</h2> |
| 57 <div>above</div> | 62 <div>above</div> |
| 58 </div> | 63 </div> |
| 59 after text | 64 after text |
| 60 </div> | 65 </div> |
| 61 | 66 |
| 62 <div> | 67 <div> |
| 63 before text | 68 before text |
| 64 <div class="inline-flexbox"> | 69 <div class="inline-grid column"> |
| 65 <div>baseline</div> | 70 <div>baseline</div> |
| 66 <h2>h2 below</h2> | 71 <h2>h2 below</h2> |
| 67 </div> | 72 </div> |
| 68 after text | 73 after text |
| 69 </div> | 74 </div> |
| 70 | 75 |
| 71 <!-- If the first flex item has an orthogonal baseline, use the synthesized | 76 <!-- If the first grid item has an orthogonal baseline, use the synthesized |
| 72 baseline (bottom of the content box of the first item). --> | 77 baseline (bottom of the content box of the first item). --> |
| 73 <div> | 78 <div> |
| 74 should align with the middle | 79 should align with the middle |
| 75 <div class="inline-flexbox" style="width: 40px; height: 40px"> | 80 <div class="inline-grid" style="width: 40px; height: 40px"> |
| 76 <div style="-webkit-writing-mode: vertical-rl; height: 20px; width: 40px; bo
rder-bottom: 1px solid black"></div> | 81 <div style="-webkit-writing-mode: vertical-rl; height: 20px; width: 40px; bo
rder-bottom: 1px solid black"></div> |
| 77 </div> | 82 </div> |
| 78 of the grey flexbox | 83 of the grey grid |
| 79 </div> | 84 </div> |
| 80 | 85 |
| 81 <!-- If there are no flexitems, align to the bottom of the box. --> | 86 <!-- If there are no griditems, align to the bottom of the box. --> |
| 82 <div> | 87 <div> |
| 83 should align with the bottom | 88 should align with the bottom |
| 84 <div class="inline-flexbox" style="width: 30px; height: 30px"> | 89 <div class="inline-grid" style="width: 30px; height: 30px"> |
| 85 </div> | 90 </div> |
| 86 of the grey flexbox | 91 of the grey grid |
| 87 </div> | 92 </div> |
| 88 | 93 |
| 89 | 94 <!-- column-axis test cases. --> |
| 90 <!-- cross-axis (column) test cases. --> | |
| 91 <div> | 95 <div> |
| 92 before text | 96 before text |
| 93 <div class="inline-flexbox column"> | 97 <div class="inline-grid"> |
| 94 <div>baseline</div> | 98 <div class="firstRowFirstColumn">baseline</div> |
| 95 <div>below</div> | 99 <div class="secondRowFirstColumn">below</div> |
| 96 </div> | 100 </div> |
| 97 after text | 101 after text |
| 98 </div> | 102 </div> |
| 99 | 103 |
| 100 <div> | 104 <div> |
| 101 before text | 105 before text |
| 102 <div class="inline-flexbox column-reverse"> | 106 <div class="inline-grid"> |
| 103 <div>baseline</div> | 107 <div class="secondRowFirstColumn">baseline</div> |
| 104 <div>above</div> | 108 <div class="firstRowFirstColumn">above</div> |
| 105 </div> | 109 </div> |
| 106 after text | 110 after text |
| 107 </div> | 111 </div> |
| 108 | 112 |
| 109 <!-- If the first flex item has an orthogonal baseline, use the synthesized | 113 <!-- If the first grid item has an orthogonal baseline, use the synthesized |
| 110 baseline (bottom of the content box of the first item). --> | 114 baseline (bottom of the content box of the first item). --> |
| 111 <div> | 115 <div> |
| 112 should align with the middle | 116 should align with the middle |
| 113 <div class="inline-flexbox column" style="width: 40px; height: 40px;"> | 117 <div class="inline-grid" style="width: 40px; height: 40px;"> |
| 114 <div style="-webkit-writing-mode: vertical-rl; width: 40px; height: 20px; bo
rder-bottom: 1px solid black"></div> | 118 <div style="-webkit-writing-mode: vertical-rl; width: 40px; height: 20px; bo
rder-bottom: 1px solid black"></div> |
| 115 <div style="-webkit-writing-mode: vertical-rl; width: 40px; height: 20px"></
div> | 119 <div style="-webkit-writing-mode: vertical-rl; width: 40px; height: 20px"></
div> |
| 116 </div> | 120 </div> |
| 117 of the grey flexbox | 121 of the grey grid |
| 118 </div> | 122 </div> |
| 119 | 123 |
| 120 <!-- If there are no flexitems, align to the bottom of the box. --> | 124 <!-- If there are no griditems, align to the bottom of the box. --> |
| 121 <div> | 125 <div> |
| 122 should align with the bottom | 126 should align with the bottom |
| 123 <div class="inline-flexbox column" style="width: 30px; height: 30px"> | 127 <div class="inline-grid" style="width: 30px; height: 30px"> |
| 124 </div> | 128 </div> |
| 125 of the grey flexbox | 129 of the grey grid |
| 126 </div> | 130 </div> |
| 127 | 131 |
| 128 <!-- More tests on the right side of the page. --> | 132 <!-- More tests on the right side of the page. --> |
| 129 <div style="position: absolute; top: 0; left: 400px; width: 360px"> | 133 <div style="position: absolute; top: 0; left: 400px; width: 360px"> |
| 130 | 134 |
| 131 <!-- Ignore absolutely positioned flex items. --> | 135 <!-- Ignore absolutely positioned flex items. --> |
| 132 <div> | 136 <div> |
| 133 before text | 137 before text |
| 134 <div class="inline-flexbox"> | 138 <div class="inline-grid column"> |
| 135 <div style="position: absolute">absolute</div> | 139 <div style="position: absolute">absolute</div> |
| 136 <div style="margin-top: 30px">baseline</div> | 140 <div style="margin-top: 30px">baseline</div> |
| 137 </div> | 141 </div> |
| 138 after text | 142 after text |
| 139 </div> | 143 </div> |
| 140 | 144 |
| 141 <!-- We don't participate in baseline alignment if there's an auto margin. --> | 145 <!-- We don't participate in baseline alignment if there's an auto margin. --> |
| 142 <div> | 146 <div> |
| 143 before text | 147 before text |
| 144 <div class="inline-flexbox" style="height: 40px;"> | 148 <div class="inline-grid column" style="grid-auto-rows: 40px;"> |
| 145 <div>baseline</div> | 149 <div>baseline</div> |
| 146 <div style="align-self: baseline; margin-top: auto">below</div> | 150 <div style="align-self: baseline; margin-top: auto">below</div> |
| 147 </div> | 151 </div> |
| 148 after text | 152 after text |
| 149 </div> | 153 </div> |
| 150 | 154 |
| 151 <div> | 155 <div> |
| 152 before text | 156 before text |
| 153 <div style="display: inline-block"> | 157 <div style="display: inline-block"> |
| 154 <div class="inline-flexbox" style="height: 40px;"> | 158 <div class="inline-grid column" style="height: 40px;"> |
| 155 <div>above</div> | 159 <div>above</div> |
| 156 <div style="align-self: baseline; margin-top: 10px">baseline</div> | 160 <div style="align-self: baseline; margin-top: 10px">baseline</div> |
| 157 <div>above</div> | 161 <div>above</div> |
| 158 </div> | 162 </div> |
| 159 after | 163 after |
| 160 </div> | 164 </div> |
| 161 text | 165 text |
| 162 </div> | 166 </div> |
| 163 | 167 |
| 164 <!-- The spec is a little unclear what should happen here. For now, align to | 168 <!-- The spec is a little unclear what should happen here. For now, |
| 165 the last line box. --> | 169 align to the last line box. --> |
| 166 <div> | 170 <div> |
| 167 before text | 171 before text |
| 168 <div style="display: inline-block"> | 172 <div style="display: inline-block"> |
| 169 <div class="flexbox" style="height: 30px;"> | 173 <div class="grid column" style="height: 30px;"> |
| 170 baseline | 174 baseline |
| 171 </div> | 175 </div> |
| 172 </div> | 176 </div> |
| 173 after text | 177 after text |
| 174 </div> | 178 </div> |
| 175 | 179 |
| 176 <table style="background-color: lightgrey; margin-top: 5px"> | 180 <table style="background-color: lightgrey; margin-top: 5px"> |
| 177 <tr style="height: 50px"> | 181 <tr style="height: 50px"> |
| 178 <td style="vertical-align: bottom">bottom</td> | 182 <td style="vertical-align: bottom">bottom</td> |
| 179 <td style="vertical-align: baseline">baseline</td> | 183 <td style="vertical-align: baseline">baseline</td> |
| 180 <td style="vertical-align: top">top</td> | 184 <td style="vertical-align: top">top</td> |
| 181 <td style="vertical-align: baseline"><div class="flexbox column"> | 185 <td style="vertical-align: baseline"><div class="grid"> |
| 182 <div>baseline</div> | 186 <div class="firstRowFirstColumn">baseline</div> |
| 183 <div>below</div> | 187 <div class="secondRowFirstColumn">below</div> |
| 184 </div></td> | 188 </div></td> |
| 185 <td style="vertical-align: baseline"><div class="flexbox column-reverse"> | 189 <td style="vertical-align: baseline"><div class="grid"> |
| 186 <div>baseline</div> | 190 <div class="secondRowFirstColumn">baseline</div> |
| 187 <div>above</div> | 191 <div class="firstRowFirstColumn">above</div> |
| 188 </div></td> | 192 </div></td> |
| 189 </tr> | 193 </tr> |
| 190 </table> | 194 </table> |
| 191 | 195 |
| 192 <table style="background-color: lightgrey; margin-top: 5px"> | 196 <table style="background-color: lightgrey; margin-top: 5px"> |
| 193 <tr style="height: 50px"> | 197 <tr style="height: 50px"> |
| 194 <td style="vertical-align: bottom">bottom</td> | 198 <td style="vertical-align: bottom">bottom</td> |
| 195 <td style="vertical-align: baseline">baseline</td> | 199 <td style="vertical-align: baseline">baseline</td> |
| 196 <td style="vertical-align: top">top</td> | 200 <td style="vertical-align: top">top</td> |
| 197 <td style="vertical-align: baseline"><div class="flexbox"> | 201 <td style="vertical-align: baseline"><div class="grid column"> |
| 198 <h2>h2 baseline</h2> | 202 <h2>h2 baseline</h2> |
| 199 <div>above</div> | 203 <div>above</div> |
| 200 </div></td> | 204 </div></td> |
| 201 </table> | 205 </table> |
| 202 | 206 |
| 203 <!-- If a box contributing a baseline has a scrollbar, the box must be treated | 207 <!-- If a box contributing a baseline has a scrollbar, the box must be treated |
| 204 as being in its initial scroll position when computing the baseline. --> | 208 as being in its initial scroll position when computing the baseline. --> |
| 205 <div> | 209 <div> |
| 206 before text | 210 before text |
| 207 <div id="flexbox-with-scrollbar" class="inline-flexbox" style="height: 65px; wid
th: 150px"> | 211 <div id="grid-with-scrollbar" class="inline-grid column" style="height: 65px; wi
dth: 150px"> |
| 208 <div id="flexitem-with-scrollbar" style="align-self: baseline; padding-top:
15px; height: 50px; overflow-y: scroll;"> | 212 <div id="griditem-with-scrollbar" style="align-self: baseline; padding-top:
15px; height: 50px; overflow-y: scroll;"> |
| 209 The baseline is based on<br> | 213 The baseline is based on<br> |
| 210 the non-scrolled position;<br> | 214 the non-scrolled position;<br> |
| 211 this won't line up. | 215 this won't line up. |
| 212 </div> | 216 </div> |
| 213 </div> | 217 </div> |
| 214 after text | 218 after text |
| 215 </div> | 219 </div> |
| 216 | 220 |
| 217 </div> | 221 </div> |
| 218 | 222 |
| 219 <script> | 223 <script> |
| 220 document.getElementById("flexitem-with-scrollbar").scrollTop = 999; | 224 document.getElementById("griditem-with-scrollbar").scrollTop = 999; |
| 221 document.getElementById("flexbox-with-scrollbar").style.width = "auto"; | 225 document.getElementById("grid-with-scrollbar").style.width = "auto"; |
| 222 </script> | 226 </script> |
| 223 | 227 |
| 224 </body> | 228 </body> |
| 225 </html> | 229 </html> |
| OLD | NEW |