<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <!-- 
  This test's original filename was multicol-inherit-004.xht
  and it has been modified and is now
  multicol-nested-column-rule-001.xht
   -->
  <title>CSS Multi-column Layout Test: nested multi-columns and column-rule position</title>
  <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
  <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!--  2013-08-09  -->
  <link rel="help" href="http://www.w3.org/TR/css3-multicol/#pseudo-algorithm" title="3.4 Pseudo-algorithm" />
  <link rel="match" href="multicol-nested-column-rule-001-ref.xht" />
  <meta name="flags" content="ahem" />
  <meta name="assert" content="This test checks how the height of column boxes conditions the height of column rule." />
  <style type="text/css"><![CDATA[
  body > div
  {
  column-rule: blue solid 1em;
  font: 1.25em/1 Ahem;
  width: 26em;
  }

  /*

  N == 3;

  W == max(0, (available-width - ((N - 1) * column-gap)) / N);
  W == max(0, (26em - ((3 - 1) * 1em)) / 3);
  W == max(0, (26em - (2 * 1em)) / 3);
  W == max(0, (26em - 2em) / 3);
  W == max(0, 24em / 3);
  W == max(0, 8em);
  W == 8em;

  So, the first column-rule should be at:

    1.0em : margin-left of outer div
    8.0em : width of 1st column box
    0.0em : (1.0em / 2) - (1.0em / 2) : left edge of 1st column-rule
  =========
    9.0em

  The 2nd column-rule should be at:

    1.0em : margin-left of outer div
    8.0em : width of 1st column box
    1.0em : first -moz-column-gap
    8.0em : width of 2nd column box
    0.0em : (1.0em / 2) - (1.0em / 2) : left edge of 2nd column-rule
  =========
   18.0em

  The height of column rule depends on number of line boxes in
  each outer column box which depends on number of line boxes
  in each inner column box. So:

     8em : width of each outer column box
   -
     2em : horizontal margin of each div inside
   =======
     6em : width of each inner multi-column elements

  N == 3;

  W == max(0, (available-width - ((N - 1) * -column-gap)) / N);
  W == max(0, (6em - ((3 - 1) * 1em)) / 3);
  W == max(0, (6em - (2 * 1em)) / 3);
  W == max(0, (6em - 2em) / 3);
  W == max(0, 4em / 3);
  W == max(0, 1.33333em);
  W == 1.33333em;

  So, each duo of 'a', 'm' and 'x' should fill one and only 1 line
  box. There are 8 duos; therefore, the first 2 inner
  column boxes should use 3 line boxes and the 3rd inner
  column box should be using 2 line boxes.

  So, the height of the 2 blue column rules should be 60px.

  */

  div
  {
  background-color: white;
  color: white;
  font-size: 1em;
  margin: 0em 1em;
  orphans: 1;
  widows: 1;

  column-count: 3;
  column-gap: 1em;
  }
  ]]></style>
 </head>

 <body>

  <div>
	<div>
		aa aa
		aa aa
		aa aa
		aa aa
	</div>
	<div>
		mm mm
		mm mm
		mm mm
		mm mm
	</div>
	<div>
		xx xx
		xx xx
		xx xx
		xx xx
	</div>
  </div>

 </body>
</html>
