layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderBlock {HTML} at (0,0) size 800x600
    RenderBody {BODY} at (8,8) size 784x584 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 784x20
        RenderText {#text} at (0,0) size 337x19
          text run at (0,0) width 337: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 784x48
        RenderText {#text} at (0,0) size 376x48
          text run at (0,0) width 376: "P {background-image: url(../resources/bg.gif);}"
          text run at (376,0) width 0: " "
          text run at (0,16) width 240: ".one {background-image: none;}"
          text run at (240,16) width 0: " "
          text run at (0,32) width 0: " "
      RenderBlock {HR} at (0,97) size 784x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,115) size 784x40
        RenderText {#text} at (0,0) size 779x39
          text run at (0,0) width 482: "This sentence should be backed by an image-- a green grid pattern, in this case. "
          text run at (482,0) width 297: "The background image should also tile along both"
          text run at (0,20) width 570: "axes, because no repeat direction is specified (specific tests for repeating are found elsewhere)."
      RenderBlock {P} at (0,171) size 784x60
        RenderText {#text} at (0,0) size 574x19
          text run at (0,0) width 574: "This sentence should be backed by a repeated green-grid image, as should the last three words "
        RenderInline {STRONG} at (0,0) size 103x19
          RenderInline {SPAN} at (0,0) size 103x19
            RenderText {#text} at (574,0) size 103x19
              text run at (574,0) width 103: "in this sentence"
        RenderText {#text} at (677,0) size 97x19
          text run at (677,0) width 8: ". "
          text run at (685,0) width 89: "If it is not, then"
        RenderInline {CODE} at (0,0) size 32x16
          RenderText {#text} at (0,23) size 32x16
            text run at (0,23) width 32: "none"
        RenderText {#text} at (32,20) size 162x19
          text run at (32,20) width 157: " is interpreted incorrectly. "
          text run at (189,20) width 5: "("
        RenderInline {CODE} at (0,0) size 32x16
          RenderText {#text} at (194,23) size 32x16
            text run at (194,23) width 32: "none"
        RenderText {#text} at (226,20) size 773x39
          text run at (226,20) width 547: " means that the element has no background image, allowing the parent to \"shine through\" by"
          text run at (0,40) width 706: "default; since the parent of the words \"in this sentence\" is the paragraph, then the paragraph's image should be visible.)"
      RenderBlock {P} at (0,247) size 784x20
        RenderText {#text} at (0,0) size 777x19
          text run at (0,0) width 777: "This sentence should NOT be backed by a repeated green-grid image, allowing the page's background to \"shine through\" instead."
      RenderTable {TABLE} at (0,283) size 784x230 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 782x228
          RenderTableRow {TR} at (0,0) size 782x28
            RenderTableCell {TD} at (0,0) size 782x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 159x19
                RenderText {#text} at (4,4) size 159x19
                  text run at (4,4) width 159: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 782x200
            RenderTableCell {TD} at (0,114) size 12x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x19
                text run at (4,4) width 4: " "
            RenderTableCell {TD} at (12,28) size 770x200 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 762x40
                RenderText {#text} at (0,0) size 748x39
                  text run at (0,0) width 482: "This sentence should be backed by an image-- a green grid pattern, in this case. "
                  text run at (482,0) width 266: "The background image should also tile along"
                  text run at (0,20) width 601: "both axes, because no repeat direction is specified (specific tests for repeating are found elsewhere)."
              RenderBlock {P} at (4,60) size 762x80
                RenderText {#text} at (0,0) size 574x19
                  text run at (0,0) width 574: "This sentence should be backed by a repeated green-grid image, as should the last three words "
                RenderInline {STRONG} at (0,0) size 103x19
                  RenderInline {SPAN} at (0,0) size 103x19
                    RenderText {#text} at (574,0) size 103x19
                      text run at (574,0) width 103: "in this sentence"
                RenderText {#text} at (677,0) size 745x39
                  text run at (677,0) width 8: ". "
                  text run at (685,0) width 60: "If it is not,"
                  text run at (0,20) width 29: "then "
                RenderInline {CODE} at (0,0) size 32x16
                  RenderText {#text} at (29,23) size 32x16
                    text run at (29,23) width 32: "none"
                RenderText {#text} at (61,20) size 162x19
                  text run at (61,20) width 157: " is interpreted incorrectly. "
                  text run at (218,20) width 5: "("
                RenderInline {CODE} at (0,0) size 32x16
                  RenderText {#text} at (223,23) size 32x16
                    text run at (223,23) width 32: "none"
                RenderText {#text} at (255,20) size 729x59
                  text run at (255,20) width 474: " means that the element has no background image, allowing the parent to \"shine"
                  text run at (0,40) width 729: "through\" by default; since the parent of the words \"in this sentence\" is the paragraph, then the paragraph's image should be"
                  text run at (0,60) width 46: "visible.)"
              RenderBlock {P} at (4,156) size 762x40
                RenderText {#text} at (0,0) size 727x39
                  text run at (0,0) width 727: "This sentence should NOT be backed by a repeated green-grid image, allowing the page's background to \"shine through\""
                  text run at (0,20) width 46: "instead."
