| OLD | NEW | 
 | (Empty) | 
|    1 <html> |  | 
|    2 <head> |  | 
|    3         <style type="text/css"> |  | 
|    4                 /* Make sure the console and the description don't interfere wit
     h the rest of the layout. */ |  | 
|    5                 #description { |  | 
|    6                         position: absolute; |  | 
|    7                         top: 0px; |  | 
|    8                 } |  | 
|    9  |  | 
|   10                 #console { |  | 
|   11                         position: absolute; |  | 
|   12                         top: 100px; |  | 
|   13                 } |  | 
|   14  |  | 
|   15                 #divMain1 { |  | 
|   16                         border: 2px solid blue; |  | 
|   17                         height: 105px; |  | 
|   18                         margin: 10px; |  | 
|   19                         position: relative; |  | 
|   20                         -webkit-flow-into: flow1; |  | 
|   21                 } |  | 
|   22  |  | 
|   23                 #divMain2 { |  | 
|   24                         border: 2px solid blue; |  | 
|   25                         height: 120px; |  | 
|   26                         margin: 10px; |  | 
|   27                         -webkit-flow-into: flow2; |  | 
|   28                 } |  | 
|   29  |  | 
|   30                 #divMain3 { |  | 
|   31                         border: 2px solid blue; |  | 
|   32                         width: 211px; |  | 
|   33                         height: 146px; |  | 
|   34                         padding-left: 5px; |  | 
|   35                         margin: 5px; |  | 
|   36                         margin-left: 10px; |  | 
|   37                         left: 40px; |  | 
|   38                         -webkit-flow-into: flow3; |  | 
|   39                 } |  | 
|   40  |  | 
|   41                 #divMain4 { |  | 
|   42                         border: 2px solid blue; |  | 
|   43                         width: 225px; |  | 
|   44                         height: 120px; |  | 
|   45                         padding-left: 5px; |  | 
|   46                         padding-top: 5px; |  | 
|   47                         margin: 8px; |  | 
|   48                         -webkit-flow-into: flow4; |  | 
|   49                 } |  | 
|   50  |  | 
|   51                 .divText { |  | 
|   52                         border: 1px solid green; |  | 
|   53                         color: green; |  | 
|   54                         font-size: 14px; |  | 
|   55                 } |  | 
|   56  |  | 
|   57                 #divText1 { |  | 
|   58                         width: 250px; |  | 
|   59                         position: absolute; |  | 
|   60                         left: 10px; |  | 
|   61                         top: 10px; |  | 
|   62                 } |  | 
|   63  |  | 
|   64                 #divText2 { |  | 
|   65                         width: 200px; |  | 
|   66                         position: absolute; |  | 
|   67                         left: 20px; |  | 
|   68                         top: 20px; |  | 
|   69                 } |  | 
|   70  |  | 
|   71                 #divText3 { |  | 
|   72                         border-color: #009999; |  | 
|   73                         color: #009999; |  | 
|   74                         margin: 10px; |  | 
|   75                         width: 180px; |  | 
|   76                         height: 90px; |  | 
|   77                         position: -webkit-sticky; |  | 
|   78                         top: 50px; |  | 
|   79                 } |  | 
|   80  |  | 
|   81                 #divText4 { |  | 
|   82                         border-color: #009999; |  | 
|   83                         color: #009999; |  | 
|   84                         width: 180px; |  | 
|   85                         height: 100px; |  | 
|   86                         position: fixed; |  | 
|   87                         left: 50px; |  | 
|   88                         top: 20px; |  | 
|   89                 } |  | 
|   90  |  | 
|   91                 #dummy { |  | 
|   92                         width: 100px; |  | 
|   93                         height: 25px; |  | 
|   94                         border: 1px solid black; |  | 
|   95                         margin: 5px; |  | 
|   96                         margin-left: 20px; |  | 
|   97                 } |  | 
|   98  |  | 
|   99                 #region1 { |  | 
|  100                         -webkit-flow-from: flow1; |  | 
|  101                         border: 1px solid red; |  | 
|  102                         position: relative; |  | 
|  103                         left: 59px; |  | 
|  104                         top: 335px; |  | 
|  105                         width: 304px; |  | 
|  106                         height: 125px; |  | 
|  107                 } |  | 
|  108  |  | 
|  109                 #region2 { |  | 
|  110                         -webkit-flow-from: flow2; |  | 
|  111                         border: 1px solid red; |  | 
|  112                         position: relative; |  | 
|  113                         left: 71px; |  | 
|  114                         top: 344px; |  | 
|  115                         width: 304px; |  | 
|  116                         height: 140px; |  | 
|  117                 } |  | 
|  118  |  | 
|  119                 #region3 { |  | 
|  120                         -webkit-flow-from: flow3; |  | 
|  121                         border: 1px solid red; |  | 
|  122                         position: relative; |  | 
|  123                         margin-top: 20px; |  | 
|  124                         left: 564px; |  | 
|  125                         top: 53px; |  | 
|  126                         width: 250px; |  | 
|  127                         height: 160px; |  | 
|  128                         overflow: hidden; |  | 
|  129                 } |  | 
|  130  |  | 
|  131                 #region4 { |  | 
|  132                         -webkit-flow-from: flow4; |  | 
|  133                         border: 1px solid red; |  | 
|  134                         position: relative; |  | 
|  135                         margin-top: 20px; |  | 
|  136                         left: 450px; |  | 
|  137                         top: 53px; |  | 
|  138                         width: 250px; |  | 
|  139                         height: 140px; |  | 
|  140                 } |  | 
|  141  |  | 
|  142                 .grid { |  | 
|  143                         position: absolute; |  | 
|  144                         top: 750px; |  | 
|  145                         width: 100px; |  | 
|  146                         height: 100px; |  | 
|  147                         border-right: 1px solid blue; |  | 
|  148                         text-align: right; |  | 
|  149                         font-size: 14px; |  | 
|  150                         color: blue; |  | 
|  151                 } |  | 
|  152  |  | 
|  153                 .vgrid { |  | 
|  154                         position: absolute; |  | 
|  155                         left: 900px; |  | 
|  156                         width: 100px; |  | 
|  157                         height: 100px; |  | 
|  158                         border-bottom: 1px solid blue; |  | 
|  159                         text-align: bottom; |  | 
|  160                         font-size: 14px; |  | 
|  161                         color: blue; |  | 
|  162                 } |  | 
|  163  |  | 
|  164                 #grid1 { |  | 
|  165                         left: 0px; |  | 
|  166                 } |  | 
|  167                 #grid2 { |  | 
|  168                         left: 100px; |  | 
|  169                 } |  | 
|  170                 #grid3 { |  | 
|  171                         left: 200px; |  | 
|  172                 } |  | 
|  173                 #grid4 { |  | 
|  174                         left: 300px; |  | 
|  175                 } |  | 
|  176                 #grid5 { |  | 
|  177                         left: 400px; |  | 
|  178                 } |  | 
|  179                 #grid6 { |  | 
|  180                         left: 500px; |  | 
|  181                 } |  | 
|  182                 #grid7 { |  | 
|  183                         left: 600px; |  | 
|  184                 } |  | 
|  185  |  | 
|  186                 #vgrid1 { |  | 
|  187                         top: 0px; |  | 
|  188                 } |  | 
|  189                 #vgrid2 { |  | 
|  190                         top: 100px; |  | 
|  191                 } |  | 
|  192                 #vgrid3 { |  | 
|  193                         top: 200px; |  | 
|  194                 } |  | 
|  195                 #vgrid4 { |  | 
|  196                         top: 300px; |  | 
|  197                 } |  | 
|  198                 #vgrid5 { |  | 
|  199                         top: 400px; |  | 
|  200                 } |  | 
|  201                 #vgrid6 { |  | 
|  202                         top: 500px; |  | 
|  203                 } |  | 
|  204                 #vgrid7 { |  | 
|  205                         top: 600px; |  | 
|  206                 } |  | 
|  207                 #vgrid8 { |  | 
|  208                         top: 700px; |  | 
|  209                         border: none; |  | 
|  210                 } |  | 
|  211         </style> |  | 
|  212  |  | 
|  213         <script src="../../../resources/js-test.js"></script> |  | 
|  214  |  | 
|  215         <script type="text/javascript"> |  | 
|  216                 function writeOffsetInfo(selector) { |  | 
|  217                         var divItems = document.querySelectorAll(selector); |  | 
|  218                                  |  | 
|  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#", d
     ivItem.offsetTop); |  | 
|  223                                 newHTML = newHTML.replace("#offLeft#", divItem.o
     ffsetLeft); |  | 
|  224                                 if (divItem.offsetParent) |  | 
|  225                                         newHTML = newHTML.replace("#offParent#",
      divItem.offsetParent.tagName + "(" + divItem.offsetParent.id + ")"); |  | 
|  226                                 else |  | 
|  227                                         newHTML = newHTML.replace("#offParent#",
      "null"); |  | 
|  228                                 divItem.innerHTML = newHTML; |  | 
|  229                         } |  | 
|  230                 } |  | 
|  231                 function myOnLoad() { |  | 
|  232                         writeOffsetInfo(".divText"); |  | 
|  233                 } |  | 
|  234         </script> |  | 
|  235 </head> |  | 
|  236  |  | 
|  237 <body id="body" onload = "myOnLoad();"> |  | 
|  238         <div id="divMain1"> |  | 
|  239                 <div class="divText" id="divText1">This is <b>divText1</b> (abso
     lute):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#
     </b><br/>- offsetTop is <b>#offTop#</b></div> |  | 
|  240         </div> |  | 
|  241  |  | 
|  242         <div id="divMain2"> |  | 
|  243                 <div class="divText" id="divText2">This is <b>divText2</b> (abso
     lute):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#
     </b><br/>- offsetTop is <b>#offTop#</b></div> |  | 
|  244         </div> |  | 
|  245  |  | 
|  246         <div id="divMain3"> |  | 
|  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/>- off
     setLeft is <b>#offLeft#</b><br/>- offsetTop is <b>#offTop#</b></span></div> |  | 
|  249         </div> |  | 
|  250  |  | 
|  251         <div id="divMain4"> |  | 
|  252                 <div class="divText" id="divText4">This is <b>divText4</b> (fixe
     d):<br/>- offsetParent is <b>#offParent#</b><br/>- offsetLeft is <b>#offLeft#</b
     ><br/>- offsetTop is <b>#offTop#</b></div> |  | 
|  253         </div> |  | 
|  254  |  | 
|  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> |  | 
|  259  |  | 
|  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> |  | 
|  267  |  | 
|  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> |  | 
|  276  |  | 
|  277         <script> |  | 
|  278                 description("Test offsetLeft and offsetTop in a named flow with 
     absolute, sticky and fixed positioning.") |  | 
|  279  |  | 
|  280                 shouldBe("divText1.offsetParent", "divMain1"); |  | 
|  281                 shouldBe("divText1.offsetLeft", "10"); |  | 
|  282                 shouldBe("divText1.offsetTop", "10"); |  | 
|  283  |  | 
|  284                 shouldBe("divText2.offsetParent", "document.body"); |  | 
|  285                 shouldBe("divText2.offsetLeft", "100"); |  | 
|  286                 shouldBe("divText2.offsetTop", "500"); |  | 
|  287  |  | 
|  288                 shouldBe("divText3.offsetParent", "document.body"); |  | 
|  289                 shouldBe("divText3.offsetLeft", "600"); |  | 
|  290                 shouldBe("divText3.offsetTop", "400"); |  | 
|  291  |  | 
|  292                 shouldBeNull("divText4.offsetParent"); |  | 
|  293                 shouldBe("divText4.offsetLeft", "50"); |  | 
|  294                 shouldBe("divText4.offsetTop", "20"); |  | 
|  295  |  | 
|  296                 if (window.testRunner) { |  | 
|  297                         var allGraphicElements = document.querySelectorAll(".reg
     ion, .divText, .grid, .vgrid, #dummy"); |  | 
|  298                         for (var i=0; i<allGraphicElements.length; i++) |  | 
|  299                                 allGraphicElements[i].style.display = "none"; |  | 
|  300                 } |  | 
|  301                  |  | 
|  302         </script> |  | 
|  303 </body> |  | 
|  304 </html> |  | 
| OLD | NEW |