<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>CSS Test: Run in - clear on a run-in should apply to the block it runs into</title>
  <link rel="author" title="Boris Zbarsky" href="mailto:bzbarsky@mit.edu"/>
  <link rel="reviewer" title="Microsoft" href="http://www.microsoft.com/" />
  <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#flow-control"/>
  <link rel="match" href="run-in-text-ref.xht"/>
  <meta name="flags" content="dom" />
  <meta name="assert"
        content="Tests that dynamically set clear on run-ins applies to their block."/>
  <style type="text/css"><![CDATA[
    div { display: block; }
    .bold { font-weight: bold; float: left }
    #target { border: 2px solid black; }
    .run-in { display: run-in; }
    .clear { clear: both; }
  ]]></style>
  <script type="text/javascript"><![CDATA[
    function flushLayout(elt) {
      elt.offsetWidth; /* Just undefined on non-elements, but that's ok */
      for (var i = 0; i < elt.childNodes.length; ++i) {
        flushLayout(elt.childNodes[i]);
      }
    }
    window.onload = function() {
      flushLayout(document.documentElement);
      var r = document.getElementById("r");
      r.className = "run-in clear";
    }
  ]]></script>
 </head>
 <body>
   <div class="bold">Run-in header</div>
   <div id="r" class="run-in">Some </div>
   <div>text.</div>
   <div id="target">Start of block.  The run-in header should NOT be inside the
    border around this block; it should be on a line by itself before the line
    containing "Some text".</div>
 </body>
</html>
