layer at (0,0) size 785x1493
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1493
  RenderBlock {HTML} at (0,0) size 785x1493
    RenderBody {BODY} at (8,16) size 769x1429 [bgcolor=#FFFFFF]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 165x17
          text run at (0,0) width 165: "This page is part of the "
        RenderInline {A} at (0,0) size 73x17 [color=#0000EE]
          RenderText {#text} at (165,0) size 73x17
            text run at (165,0) width 73: "CSS3.info"
        RenderText {#text} at (238,0) size 4x17
          text run at (238,0) width 4: " "
        RenderInline {A} at (0,0) size 131x17 [color=#0000EE]
          RenderText {#text} at (242,0) size 131x17
            text run at (242,0) width 131: "CSS selectors test"
        RenderText {#text} at (373,0) size 133x17
          text run at (373,0) width 133: ". See more info on "
        RenderInline {A} at (0,0) size 111x17 [color=#0000EE]
          RenderText {#text} at (506,0) size 111x17
            text run at (506,0) width 111: "CSS3 selectors"
        RenderText {#text} at (617,0) size 4x17
          text run at (617,0) width 4: "."
      RenderBlock {DIV} at (0,34) size 769x0 [bgcolor=#009900]
      RenderBlock {OL} at (0,34) size 769x1395
        RenderListItem {LI} at (40,0) size 616x213 [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 584x76 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "1"
            RenderText {#text} at (6,8) size 281x62
              text run at (6,8) width 145: "div:only-of-type {"
              text run at (150,8) width 1: " "
              text run at (6,25) width 9: "}"
              text run at (14,25) width 1: " "
              text run at (6,40) width 1: " "
              text run at (6,55) width 281: "<div>Does this element match?</div>"
          RenderBlock {P} at (16,145) size 584x36
            RenderText {#text} at (0,0) size 551x35
              text run at (0,0) width 551: "The CSS selector should match the marked div element, because it is the only"
              text run at (0,18) width 137: "element of this type"
        RenderListItem {LI} at (40,261) size 616x228 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
            RenderBlock {BLOCKQUOTE} at (0,24) size 584x0 [bgcolor=#009900]
          RenderBlock {PRE} at (16,53) size 584x91 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "2"
            RenderText {#text} at (6,8) size 281x77
              text run at (6,8) width 145: "div:only-of-type {"
              text run at (150,8) width 1: " "
              text run at (6,25) width 9: "}"
              text run at (14,25) width 1: " "
              text run at (6,40) width 1: " "
              text run at (6,55) width 281: "<div>Does this element match?</div>"
              text run at (286,55) width 1: " "
              text run at (6,70) width 201: "<blockquote></blockquote>"
          RenderBlock {P} at (16,160) size 584x36
            RenderText {#text} at (0,0) size 551x35
              text run at (0,0) width 551: "The CSS selector should match the marked div element, because it is the only"
              text run at (0,18) width 137: "element of this type"
        RenderListItem {LI} at (40,537) size 616x258 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
            RenderBlock {BLOCKQUOTE} at (0,24) size 584x0 [bgcolor=#009900]
              RenderBlock {DIV} at (0,0) size 584x0
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "3"
            RenderText {#text} at (6,8) size 281x107
              text run at (6,8) width 145: "div:only-of-type {"
              text run at (150,8) width 1: " "
              text run at (6,25) width 9: "}"
              text run at (14,25) width 1: " "
              text run at (6,40) width 1: " "
              text run at (6,55) width 281: "<div>Does this element match?</div>"
              text run at (286,55) width 1: " "
              text run at (6,70) width 97: "<blockquote>"
              text run at (102,70) width 1: " "
              text run at (6,85) width 113: "   <div></div>"
              text run at (118,85) width 1: " "
              text run at (6,100) width 105: "</blockquote>"
          RenderBlock {P} at (16,190) size 584x36
            RenderText {#text} at (0,0) size 551x35
              text run at (0,0) width 551: "The CSS selector should match the marked div element, because it is the only"
              text run at (0,18) width 230: "element of this type in this scope"
        RenderListItem {LI} at (40,843) size 616x228 [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
          RenderBlock {PRE} at (16,53) size 584x91 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "4"
            RenderText {#text} at (6,8) size 281x77
              text run at (6,8) width 145: "div:only-of-type {"
              text run at (150,8) width 1: " "
              text run at (6,25) width 9: "}"
              text run at (14,25) width 1: " "
              text run at (6,40) width 1: " "
              text run at (6,55) width 281: "<div>Does this element match?</div>"
              text run at (286,55) width 1: " "
              text run at (6,70) width 89: "<div></div>"
          RenderBlock {P} at (16,160) size 584x36
            RenderText {#text} at (0,0) size 569x35
              text run at (0,0) width 569: "The CSS selector should not match the marked div element, because it is not the"
              text run at (0,18) width 171: "only element of this type"
        RenderListItem {LI} at (40,1119) size 616x276 [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
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "5"
            RenderText {#text} at (6,8) size 481x107
              text run at (6,8) width 145: "div:only-of-type {"
              text run at (150,8) width 1: " "
              text run at (6,25) width 9: "}"
              text run at (14,25) width 1: " "
              text run at (6,40) width 1: " "
              text run at (6,55) width 225: "<div id='appendChild'></div>"
              text run at (230,55) width 1: " "
              text run at (6,70) width 1: " "
              text run at (6,85) width 385: "var ib = document.getElementById('appendChild');"
              text run at (390,85) width 1: " "
              text run at (6,100) width 481: "ib.parentElement.appendChild(document.createElement(\"div\"));"
          RenderBlock {P} at (16,190) size 584x54
            RenderText {#text} at (0,0) size 569x53
              text run at (0,0) width 521: "The CSS selector should not match the original div element, because it is "
              text run at (521,0) width 48: "not the"
              text run at (0,18) width 512: "only of its type anymore after another child with the same type is append "
              text run at (512,18) width 43: "by the"
              text run at (0,36) width 115: "Javascript code."
