3 <style type="text/css">
4 /* Make sure the console and the description don't interfere with the rest of the layout. */
16 border: 2px solid blue;
20 -webkit-flow-into: flow1;
24 border: 2px solid blue;
27 -webkit-flow-into: flow2;
31 border: 2px solid blue;
38 -webkit-flow-into: flow3;
42 border: 2px solid blue;
48 -webkit-flow-into: flow4;
52 border: 1px solid green;
72 border-color: #009999;
77 position: -webkit-sticky;
82 border-color: #009999;
94 border: 1px solid black;
100 -webkit-flow-from: flow1;
101 border: 1px solid red;
110 -webkit-flow-from: flow2;
111 border: 1px solid red;
120 -webkit-flow-from: flow3;
121 border: 1px solid red;
132 -webkit-flow-from: flow4;
133 border: 1px solid red;
147 border-right: 1px solid blue;
158 border-bottom: 1px solid blue;
213 <script src="../../../resources/js-test.js"></script>
215 <script type="text/javascript">
216 function writeOffsetInfo(selector) {
217 var divItems = document.querySelectorAll(selector);
219 for (var i=0; i<divItems.length; i++) {
220 var divItem = divItems[i];
221 var existingHTML = divItem.innerHTML;
222 var newHTML = existingHTML.replace("#offTop#", divItem.offsetTop);
223 newHTML = newHTML.replace("#offLeft#", divItem.offsetLeft);
224 if (divItem.offsetParent)
225 newHTML = newHTML.replace("#offParent#", divItem.offsetParent.tagName + "(" + divItem.offsetParent.id + ")");
227 newHTML = newHTML.replace("#offParent#", "null");
228 divItem.innerHTML = newHTML;
231 function myOnLoad() {
232 writeOffsetInfo(".divText");
237 <body id="body" onload = "myOnLoad();">
239 <div class="divText" id="divText1">This is <b>divText1</b> (absolute):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#</b><br/>- offsetTop is <b>#offTop#</b></div>
243 <div class="divText" id="divText2">This is <b>divText2</b> (absolute):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#</b><br/>- offsetTop is <b>#offTop#</b></div>
247 <div class="dummy" id="dummy">dummy</div>
248 <div class="divText" id="divText3"><span class="offsetInfo">This is <b>divText3</b> (sticky):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#</b><br/>- offsetTop is <b>#offTop#</b></span></div>
252 <div class="divText" id="divText4">This is <b>divText4</b> (fixed):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#</b><br/>- offsetTop is <b>#offTop#</b></div>
255 <div class="region" id="region1"></div>
256 <div class="region" id="region2"></div>
257 <div class="region" id="region3"></div>
258 <div class="region" id="region4"></div>
260 <div id="grid1" class="grid">100px</div>
261 <div id="grid2" class="grid">200px</div>
262 <div id="grid3" class="grid">300px</div>
263 <div id="grid4" class="grid">400px</div>
264 <div id="grid5" class="grid">500px</div>
265 <div id="grid6" class="grid">600px</div>
266 <div id="grid7" class="grid">700px</div>
268 <div id="vgrid1" class="vgrid"></div>
269 <div id="vgrid2" class="vgrid">100px</div>
270 <div id="vgrid3" class="vgrid">200px</div>
271 <div id="vgrid4" class="vgrid">300px</div>
272 <div id="vgrid5" class="vgrid">400px</div>
273 <div id="vgrid6" class="vgrid">500px</div>
274 <div id="vgrid7" class="vgrid">600px</div>
275 <div id="vgrid8" class="vgrid">700px</div>
278 description("Test offsetLeft and offsetTop in a named flow with absolute, sticky and fixed positioning.")
280 shouldBe("divText1.offsetParent", "divMain1");
281 shouldBe("divText1.offsetLeft", "10");
282 shouldBe("divText1.offsetTop", "10");
284 shouldBe("divText2.offsetParent", "document.body");
285 shouldBe("divText2.offsetLeft", "100");
286 shouldBe("divText2.offsetTop", "500");
288 shouldBe("divText3.offsetParent", "document.body");
289 shouldBe("divText3.offsetLeft", "600");
290 shouldBe("divText3.offsetTop", "400");
292 shouldBeNull("divText4.offsetParent");
293 shouldBe("divText4.offsetLeft", "50");
294 shouldBe("divText4.offsetTop", "20");
296 if (window.testRunner) {
297 var allGraphicElements = document.querySelectorAll(".region, .divText, .grid, .vgrid, #dummy");
298 for (var i=0; i<allGraphicElements.length; i++)
299 allGraphicElements[i].style.display = "none";