layer at (0,0) size 785x2912
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x2912
  RenderBlock {HTML} at (0,0) size 785x2912
    RenderBody {BODY} at (8,16) size 769x2848 [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 769x2814
        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,9) size 281x61
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 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 {DIV} at (0,24) size 584x0
          RenderBlock {PRE} at (16,53) size 584x91 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "2"
            RenderText {#text} at (6,9) size 281x76
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 281: "<div>Does this element match?</div>"
              text run at (286,54) width 1: " "
              text run at (6,69) width 89: "<div></div>"
          RenderBlock {P} at (16,160) size 584x36
            RenderText {#text} at (0,0) size 546x35
              text run at (0,0) width 546: "The CSS selector should match the marked div element, because it is the first"
              text run at (0,18) width 137: "element of this type"
        RenderListItem {LI} at (40,537) size 616x228 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {BLOCKQUOTE} at (0,0) size 584x0 [bgcolor=#009900]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
          RenderBlock {PRE} at (16,53) size 584x91 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "3"
            RenderText {#text} at (6,9) size 281x76
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 201: "<blockquote></blockquote>"
              text run at (206,54) width 1: " "
              text run at (6,69) width 281: "<div>Does this element match?</div>"
          RenderBlock {P} at (16,160) size 584x36
            RenderText {#text} at (0,0) size 546x35
              text run at (0,0) width 546: "The CSS selector should match the marked div element, because it is the first"
              text run at (0,18) width 137: "element of this type"
        RenderListItem {LI} at (40,813) size 616x258 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x0 [bgcolor=#009900]
            RenderBlock {BLOCKQUOTE} at (0,0) size 584x24 [bgcolor=#009900]
              RenderBlock {DIV} at (0,0) size 584x24
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "4"
            RenderText {#text} at (6,9) size 305x106
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 89: "<div></div>"
              text run at (94,54) width 1: " "
              text run at (6,69) width 97: "<blockquote>"
              text run at (102,69) width 1: " "
              text run at (6,84) width 305: "   <div>Does this element match?</div>"
              text run at (310,84) width 1: " "
              text run at (6,99) width 105: "</blockquote>"
          RenderBlock {P} at (16,190) size 584x36
            RenderText {#text} at (0,0) size 546x35
              text run at (0,0) width 546: "The CSS selector should match the marked div element, because it is the first"
              text run at (0,18) width 230: "element of this type in this scope"
        RenderListItem {LI} at (40,1119) size 616x243 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
              RenderBlock {DIV} at (0,0) size 584x24
          RenderBlock {PRE} at (16,53) size 584x106 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "5"
            RenderText {#text} at (6,9) size 305x91
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 41: "<div>"
              text run at (46,54) width 1: " "
              text run at (6,69) width 305: "   <div>Does this element match?</div>"
              text run at (310,69) width 1: " "
              text run at (6,84) width 49: "</div>"
          RenderBlock {P} at (16,175) size 584x36
            RenderText {#text} at (0,0) size 546x35
              text run at (0,0) width 546: "The CSS selector should match the marked div element, because it is the first"
              text run at (0,18) width 280: "element of this type in the current scope"
        RenderListItem {LI} at (40,1410) size 616x258 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {BLOCKQUOTE} at (0,0) size 584x0 [bgcolor=#009900]
              RenderBlock {DIV} 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 (-37,6) size 17x18: "6"
            RenderText {#text} at (6,9) size 281x106
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 97: "<blockquote>"
              text run at (102,54) width 1: " "
              text run at (6,69) width 113: "   <div></div>"
              text run at (118,69) width 1: " "
              text run at (6,84) width 105: "</blockquote>"
              text run at (110,84) width 1: " "
              text run at (6,99) width 281: "<div>Does this element match?</div>"
          RenderBlock {P} at (16,190) size 584x36
            RenderText {#text} at (0,0) size 546x35
              text run at (0,0) width 546: "The CSS selector should match the marked div element, because it is the first"
              text run at (0,18) width 280: "element of this type in the current scope"
        RenderListItem {LI} at (40,1716) size 616x228 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#009900]
            RenderBlock {DIV} at (0,0) size 584x0 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24
          RenderBlock {PRE} at (16,53) size 584x91 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "7"
            RenderText {#text} at (6,9) size 281x76
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 89: "<div></div>"
              text run at (94,54) width 1: " "
              text run at (6,69) width 281: "<div>Does this element match?</div>"
          RenderBlock {P} at (16,160) size 584x36
            RenderText {#text} at (0,0) size 543x35
              text run at (0,0) width 543: "The CSS selector should not match the marked div element, because it is the"
              text run at (0,18) width 193: "second element of this type"
        RenderListItem {LI} at (40,1992) size 616x228 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#009900]
            RenderBlock {DIV} at (0,0) size 584x0 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24
          RenderBlock {PRE} at (16,53) size 584x91 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "8"
            RenderText {#text} at (6,9) size 281x76
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 89: "<DIV></DIV>"
              text run at (94,54) width 1: " "
              text run at (6,69) width 281: "<div>Does this element match?</div>"
          RenderBlock {P} at (16,160) size 584x36
            RenderText {#text} at (0,0) size 543x35
              text run at (0,0) width 543: "The CSS selector should not match the marked div element, because it is the"
              text run at (0,18) width 193: "second element of this type"
        RenderListItem {LI} at (40,2268) size 616x258 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24 [bgcolor=#009900]
            RenderBlock {DIV} at (0,24) size 584x0
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-37,6) size 17x18: "9"
            RenderText {#text} at (6,9) size 521x106
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 233: "<div id='insertBefore'></div>"
              text run at (238,54) width 1: " "
              text run at (6,69) width 1: " "
              text run at (6,84) width 393: "var ib = document.getElementById('insertBefore');"
              text run at (398,84) width 1: " "
              text run at (6,99) width 521: "ib.parentElement.insertBefore(document.createElement(\"div\"), ib);"
          RenderBlock {P} at (16,190) size 584x36
            RenderText {#text} at (0,0) size 567x35
              text run at (0,0) width 567: "The CSS selector should match the div element that is inserted by the Javascript"
              text run at (0,18) width 39: "code."
        RenderListItem {LI} at (40,2574) size 616x240 [bgcolor=#AAAAAA]
          RenderBlock {DIV} at (16,16) size 584x24 [bgcolor=#009900]
            RenderBlock {DIV} at (0,0) size 584x0 [bgcolor=#990000]
            RenderBlock {DIV} at (0,0) size 584x24
          RenderBlock {PRE} at (16,53) size 584x121 [bgcolor=#FFFFFF]
            RenderListMarker at (-46,6) size 26x18: "10"
            RenderText {#text} at (6,9) size 521x106
              text run at (6,9) width 153: "div:first-of-type {"
              text run at (158,9) 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 233: "<div id='insertBefore'></div>"
              text run at (238,54) width 1: " "
              text run at (6,69) width 1: " "
              text run at (6,84) width 393: "var ib = document.getElementById('insertBefore');"
              text run at (398,84) width 1: " "
              text run at (6,99) width 521: "ib.parentElement.insertBefore(document.createElement(\"div\"), ib);"
          RenderBlock {P} at (16,190) size 584x18
            RenderText {#text} at (0,0) size 529x17
              text run at (0,0) width 529: "The original div element should not be a match for the :first-of-type selector."
