layer at (0,0) size 785x877
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x877
  RenderBlock {HTML} at (0,0) size 785x877
    RenderBody {BODY} at (8,8) size 769x861 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 355x18
          text run at (0,0) width 355: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x90
        RenderText {#text} at (0,0) size 464x90
          text run at (0,0) width 456: ".zero {background-color: silver; border-bottom-width: 0;}"
          text run at (0,15) width 432: ".one {border-bottom-width: 50px; border-style: solid;}"
          text run at (0,30) width 440: ".two {border-bottom-width: thick; border-style: solid;}"
          text run at (0,45) width 464: ".three {border-bottom-width: medium; border-style: solid;}"
          text run at (0,60) width 440: ".four {border-bottom-width: thin; border-style: solid;}"
          text run at (0,75) width 272: ".five {border-bottom-width: 25px;}"
      RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,155) size 769x18
        RenderText {#text} at (0,0) size 157x18
          text run at (0,0) width 157: "(These will only work if "
        RenderInline {CODE} at (0,0) size 96x15
          RenderText {#text} at (157,2) size 96x15
            text run at (157,2) width 96: "border-style"
        RenderText {#text} at (253,0) size 89x18
          text run at (253,0) width 89: " is supported.)"
      RenderBlock {P} at (0,189) size 769x18 [bgcolor=#C0C0C0]
        RenderText {#text} at (0,0) size 203x18
          text run at (0,0) width 203: "This element has a class of zero."
      RenderBlock {P} at (0,223) size 769x71 [border: (3px solid #000000) (50px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,3) size 387x18
          text run at (3,3) width 387: "This element should have a bottom border width of 50 pixels."
      RenderBlock {P} at (0,310) size 769x26 [border: (3px solid #000000) (5px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,3) size 344x18
          text run at (3,3) width 344: "This element should have a thick bottom border width."
      RenderBlock {P} at (0,352) size 769x24 [border: (3px solid #000000)]
        RenderText {#text} at (3,3) size 364x18
          text run at (3,3) width 364: "This element should have a medium bottom border width."
      RenderBlock {P} at (0,392) size 769x22 [border: (3px solid #000000) (1px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,3) size 337x18
          text run at (3,3) width 337: "This element should have a thin bottom border width."
      RenderBlock {P} at (0,430) size 769x18
        RenderText {#text} at (0,0) size 537x18
          text run at (0,0) width 537: "This element should have no border and no extra \"padding\" on its bottom side, as no "
        RenderInline {CODE} at (0,0) size 96x15
          RenderText {#text} at (537,2) size 96x15
            text run at (537,2) width 96: "border-style"
        RenderText {#text} at (633,0) size 54x18
          text run at (633,0) width 54: " was set."
      RenderBlock {P} at (0,464) size 769x18 [bgcolor=#C0C0C0]
        RenderText {#text} at (0,0) size 203x18
          text run at (0,0) width 203: "This element has a class of zero."
      RenderTable {TABLE} at (0,498) size 709x363 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 707x361
          RenderTableRow {TR} at (0,0) size 707x26
            RenderTableCell {TD} at (0,0) size 707x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 163x18
                RenderText {#text} at (4,4) size 163x18
                  text run at (4,4) width 163: "TABLE Testing Section"
          RenderTableRow {TR} at (0,26) size 707x335
            RenderTableCell {TD} at (0,180) size 12x27 [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,5) width 4: " "
            RenderTableCell {TD} at (12,26) size 695x335 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 687x18
                RenderText {#text} at (0,0) size 157x18
                  text run at (0,0) width 157: "(These will only work if "
                RenderInline {CODE} at (0,0) size 96x15
                  RenderText {#text} at (157,2) size 96x15
                    text run at (157,2) width 96: "border-style"
                RenderText {#text} at (253,0) size 89x18
                  text run at (253,0) width 89: " is supported.)"
              RenderBlock {P} at (4,38) size 687x18 [bgcolor=#C0C0C0]
                RenderText {#text} at (0,0) size 203x18
                  text run at (0,0) width 203: "This element has a class of zero."
              RenderBlock {P} at (4,72) size 687x71 [border: (3px solid #000000) (50px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,3) size 387x18
                  text run at (3,3) width 387: "This element should have a bottom border width of 50 pixels."
              RenderBlock {P} at (4,159) size 687x26 [border: (3px solid #000000) (5px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,3) size 344x18
                  text run at (3,3) width 344: "This element should have a thick bottom border width."
              RenderBlock {P} at (4,201) size 687x24 [border: (3px solid #000000)]
                RenderText {#text} at (3,3) size 364x18
                  text run at (3,3) width 364: "This element should have a medium bottom border width."
              RenderBlock {P} at (4,241) size 687x22 [border: (3px solid #000000) (1px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,3) size 337x18
                  text run at (3,3) width 337: "This element should have a thin bottom border width."
              RenderBlock {P} at (4,279) size 687x18
                RenderText {#text} at (0,0) size 537x18
                  text run at (0,0) width 537: "This element should have no border and no extra \"padding\" on its bottom side, as no "
                RenderInline {CODE} at (0,0) size 96x15
                  RenderText {#text} at (537,2) size 96x15
                    text run at (537,2) width 96: "border-style"
                RenderText {#text} at (633,0) size 54x18
                  text run at (633,0) width 54: " was set."
              RenderBlock {P} at (4,313) size 687x18 [bgcolor=#C0C0C0]
                RenderText {#text} at (0,0) size 203x18
                  text run at (0,0) width 203: "This element has a class of zero."
