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 568x48
          text run at (0,0) width 560: ".one {border-style: dashed; border-color: black; border-width: thick;}"
          text run at (0,16) width 544: ".two {border-style: groove; border-color: red; border-width: thick;}"
          text run at (0,32) width 568: ".three {border-style: none; border-color: purple; border-width: thick;}"
      RenderBlock {HR} at (0,97) size 784x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,115) size 784x60 [bgcolor=#C0C0C0]
        RenderText {#text} at (0,0) size 627x19
          text run at (0,0) width 627: "This is an unstyled element, save for the background color, and it contains inline elements with classes of "
        RenderInline {SPAN} at (0,0) size 65x29 [border: (5px dashed #000000)]
          RenderText {#text} at (632,0) size 55x19
            text run at (632,0) width 55: "class one"
        RenderText {#text} at (692,0) size 759x39
          text run at (692,0) width 67: ", which will"
          text run at (0,20) width 227: "result in a dashed thick black border; "
        RenderInline {SPAN} at (0,0) size 66x29 [border: (5px groove #FF0000)]
          RenderText {#text} at (232,20) size 56x19
            text run at (232,20) width 56: "class two"
        RenderText {#text} at (293,20) size 355x19
          text run at (293,20) width 355: ", which should result in a grooved thick purple border, and "
        RenderInline {SPAN} at (0,0) size 63x19
          RenderText {#text} at (648,20) size 63x19
            text run at (648,20) width 63: "class three"
        RenderText {#text} at (711,20) size 754x39
          text run at (711,20) width 43: ", which"
          text run at (0,40) width 193: "should result in no border at all. "
          text run at (193,40) width 406: "The line-height of the parent element should not change, on any line."
      RenderTable {TABLE} at (0,191) size 784x98 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 782x96
          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 782x68
            RenderTableCell {TD} at (0,48) 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 770x68 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 762x60 [bgcolor=#C0C0C0]
                RenderText {#text} at (0,0) size 627x19
                  text run at (0,0) width 627: "This is an unstyled element, save for the background color, and it contains inline elements with classes of "
                RenderInline {SPAN} at (0,0) size 65x29 [border: (5px dashed #000000)]
                  RenderText {#text} at (632,0) size 55x19
                    text run at (632,0) width 55: "class one"
                RenderText {#text} at (692,0) size 759x39
                  text run at (692,0) width 67: ", which will"
                  text run at (0,20) width 227: "result in a dashed thick black border; "
                RenderInline {SPAN} at (0,0) size 66x29 [border: (5px groove #FF0000)]
                  RenderText {#text} at (232,20) size 56x19
                    text run at (232,20) width 56: "class two"
                RenderText {#text} at (293,20) size 355x19
                  text run at (293,20) width 355: ", which should result in a grooved thick purple border, and "
                RenderInline {SPAN} at (0,0) size 63x19
                  RenderText {#text} at (648,20) size 63x19
                    text run at (648,20) width 63: "class three"
                RenderText {#text} at (711,20) size 754x39
                  text run at (711,20) width 43: ", which"
                  text run at (0,40) width 193: "should result in no border at all. "
                  text run at (193,40) width 406: "The line-height of the parent element should not change, on any line."
