layer at (0,0) size 785x2270
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x2270
  RenderBlock {HTML} at (0,0) size 785x2270
    RenderBody {BODY} at (8,16) size 769x2206 [bgcolor=#FFFFFF]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 168x17
          text run at (0,0) width 168: "This page is part of the "
        RenderInline {A} at (0,0) size 73x17 [color=#0000EE]
          RenderText {#text} at (167,0) size 73x17
            text run at (167,0) width 73: "CSS3.info"
        RenderText {#text} at (239,0) size 5x17
          text run at (239,0) width 5: " "
        RenderInline {A} at (0,0) size 133x17 [color=#0000EE]
          RenderText {#text} at (243,0) size 133x17
            text run at (243,0) width 133: "CSS selectors test"
        RenderText {#text} at (375,0) size 136x17
          text run at (375,0) width 136: ". See more info on "
        RenderInline {A} at (0,0) size 111x17 [color=#0000EE]
          RenderText {#text} at (510,0) size 111x17
            text run at (510,0) width 111: "CSS3 selectors"
        RenderText {#text} at (620,0) size 6x17
          text run at (620,0) width 6: "."
      RenderBlock {DIV} at (0,34) size 769x0 [bgcolor=#009900]
      RenderBlock {OL} at (0,34) size 769x2172
        RenderListItem {LI} at (40,0) size 616x243 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
          RenderBlock {PRE} at (16,53) size 584x106 [bgcolor=#FFFFFF]
            RenderListMarker at (-38,6) size 18x18: "1"
            RenderText {#text} at (6,8) size 134x92
              text run at (6,8) width 134: "div :last-child {"
              text run at (139,8) width 1: " "
              text run at (6,24) width 9: "}"
              text run at (14,24) width 1: " "
              text run at (6,39) width 1: " "
              text run at (6,54) width 40: "<div>"
              text run at (45,54) width 1: " "
              text run at (6,69) width 110: "   <div></div>"
              text run at (115,69) width 1: " "
              text run at (6,84) width 48: "</div>"
          RenderBlock {P} at (16,175) size 584x36
            RenderText {#text} at (0,0) size 574x35
              text run at (0,0) width 574: "The CSS selector should match the inner div element, because it is the only child"
              text run at (0,18) width 168: "of the outer div element"
        RenderListItem {LI} at (40,291) size 616x258 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {BLOCKQUOTE} at (0,0) size 584x0
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-38,6) size 18x18: "2"
            RenderText {#text} at (6,8) size 219x107
              text run at (6,8) width 134: "div :last-child {"
              text run at (139,8) width 1: " "
              text run at (6,24) width 9: "}"
              text run at (14,24) width 1: " "
              text run at (6,39) width 1: " "
              text run at (6,54) width 48: "<div> "
              text run at (53,54) width 1: " "
              text run at (6,69) width 219: "   <blockquote></blockquote>"
              text run at (224,69) width 1: " "
              text run at (6,84) width 110: "   <div></div>"
              text run at (115,84) width 1: " "
              text run at (6,99) width 48: "</div>"
          RenderBlock {P} at (16,190) size 584x36
            RenderText {#text} at (0,0) size 570x35
              text run at (0,0) width 570: "The CSS selector should match the inner div element, because it is the last child"
              text run at (0,18) width 168: "of the outer div element"
        RenderListItem {LI} at (40,597) size 616x276 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-38,6) size 18x18: "3"
            RenderText {#text} at (6,8) size 204x107
              text run at (6,8) width 134: "div :last-child {"
              text run at (139,8) width 1: " "
              text run at (6,24) width 9: "}"
              text run at (14,24) width 1: " "
              text run at (6,39) width 1: " "
              text run at (6,54) width 48: "<div> "
              text run at (53,54) width 1: " "
              text run at (6,69) width 110: "   <div></div>"
              text run at (115,69) width 1: " "
              text run at (6,84) width 204: "   <!-- Just a comment -->"
              text run at (209,84) width 1: " "
              text run at (6,99) width 48: "</div>"
          RenderBlock {P} at (16,190) size 584x54
            RenderText {#text} at (0,0) size 570x53
              text run at (0,0) width 570: "The CSS selector should match the inner div element, because it is the last child"
              text run at (0,18) width 172: "of the outer div element "
              text run at (171,18) width 363: "Comments are not elements, so they should not be"
              text run at (0,36) width 307: "considered when determining the last child."
        RenderListItem {LI} at (40,921) size 616x291 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x42 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
            RenderBlock (anonymous) at (0,24) size 584x18
              RenderListMarker at (-38,0) size 18x17: "4"
              RenderText {#text} at (0,0) size 5x17
                text run at (0,0) width 5: "."
          RenderBlock {PRE} at (16,71) size 584x118 [bgcolor=#FFFFFF]
            RenderText {#text} at (6,6) size 219x106
              text run at (6,6) width 134: "div :last-child {"
              text run at (139,6) width 1: " "
              text run at (6,21) width 9: "}"
              text run at (14,21) width 1: " "
              text run at (6,36) width 1: " "
              text run at (6,51) width 48: "<div> "
              text run at (53,51) width 1: " "
              text run at (6,66) width 110: "   <div></div>"
              text run at (115,66) width 1: " "
              text run at (6,81) width 219: "   How about regular text..."
              text run at (224,81) width 1: " "
              text run at (6,96) width 48: "</div>"
          RenderBlock {P} at (16,205) size 584x54
            RenderText {#text} at (0,0) size 570x53
              text run at (0,0) width 570: "The CSS selector should match the inner div element, because it is the last child"
              text run at (0,18) width 177: "of the outer div element. "
              text run at (176,18) width 352: "Regular text is not an element, so it should not be"
              text run at (0,36) width 307: "considered when determining the last child."
        RenderListItem {LI} at (40,1260) size 616x258 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#009900]
            RenderBlock {DIV} at (0,0) size 584x24
            RenderBlock {BLOCKQUOTE} at (0,24) size 584x0 [bgcolor=#990000]
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-38,6) size 18x18: "5"
            RenderText {#text} at (6,8) size 219x107
              text run at (6,8) width 134: "div :last-child {"
              text run at (139,8) width 1: " "
              text run at (6,24) width 9: "}"
              text run at (14,24) width 1: " "
              text run at (6,39) width 1: " "
              text run at (6,54) width 48: "<div> "
              text run at (53,54) width 1: " "
              text run at (6,69) width 110: "   <div></div>"
              text run at (115,69) width 1: " "
              text run at (6,84) width 219: "   <blockquote></blockquote>"
              text run at (224,84) width 1: " "
              text run at (6,99) width 48: "</div>"
          RenderBlock {P} at (16,190) size 584x36
            RenderText {#text} at (0,0) size 560x35
              text run at (0,0) width 560: "The CSS selector should not match the inner div element, because it is the first"
              text run at (0,18) width 205: "child of the outer div element"
        RenderListItem {LI} at (40,1566) size 616x288 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x0
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
          RenderBlock {PRE} at (16,53) size 584x151 [bgcolor=#FFFFFF]
            RenderListMarker at (-38,6) size 18x18: "6"
            RenderText {#text} at (6,8) size 469x137
              text run at (6,8) width 134: "div :last-child {"
              text run at (139,8) width 1: " "
              text run at (6,24) width 9: "}"
              text run at (14,24) width 1: " "
              text run at (6,39) width 1: " "
              text run at (6,54) width 40: "<div>"
              text run at (45,54) width 1: " "
              text run at (6,69) width 243: "   <div id='insertAfter'></div>"
              text run at (248,69) width 1: " "
              text run at (6,84) width 48: "</div>"
              text run at (53,84) width 1: " "
              text run at (6,99) width 1: " "
              text run at (6,114) width 375: "var ib = document.getElementById('insertAfter');"
              text run at (380,114) width 1: " "
              text run at (6,129) width 469: "ib.parentElement.appendChild(document.createElement(\"div\"));"
          RenderBlock {P} at (16,220) size 584x36
            RenderText {#text} at (0,0) size 571x35
              text run at (0,0) width 571: "The CSS selector should match the div element that is inserted by the Javascript"
              text run at (0,18) width 40: "code."
        RenderListItem {LI} at (40,1902) size 616x270 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#009900]
            RenderBlock {DIV} at (0,0) size 584x24
            RenderBlock {DIV} at (0,24) size 584x0 [bgcolor=#990000]
          RenderBlock {PRE} at (16,53) size 584x151 [bgcolor=#FFFFFF]
            RenderListMarker at (-38,6) size 18x18: "7"
            RenderText {#text} at (6,8) size 469x137
              text run at (6,8) width 134: "div :last-child {"
              text run at (139,8) width 1: " "
              text run at (6,24) width 9: "}"
              text run at (14,24) width 1: " "
              text run at (6,39) width 1: " "
              text run at (6,54) width 40: "<div>"
              text run at (45,54) width 1: " "
              text run at (6,69) width 243: "   <div id='insertAfter'></div>"
              text run at (248,69) width 1: " "
              text run at (6,84) width 48: "</div>"
              text run at (53,84) width 1: " "
              text run at (6,99) width 1: " "
              text run at (6,114) width 375: "var ib = document.getElementById('insertAfter');"
              text run at (380,114) width 1: " "
              text run at (6,129) width 469: "ib.parentElement.appendChild(document.createElement(\"div\"));"
          RenderBlock {P} at (16,220) size 584x18
            RenderText {#text} at (0,0) size 518x17
              text run at (0,0) width 518: "The original div element should not be a match for the :last-child selector."
