<!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-003.xht
  and it has been modified and is now
  multicol-overflowing-001.xht
   -->
  <title>CSS Multi-column Layout Test: multicolumn and overflowing constrained dimensions</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/#pagination-and-overflow-outside-multicol" title="8.2. Pagination and overflow outside multicol elements" />
  <link rel="match" href="multicol-overflowing-001-ref.xht" />
  <meta name="flags" content="ahem" />
  <meta name="assert" content="This test checks that the content of a multi-column element with a fixed height can overflow outside its fixed width according to the computed overflow value. In this test, the inline content of a multi-column element exceeds the available fixed height and fixed width for the multi-column element; therefore, it overflows outside of it and creates a 4th, 5th and 6th extra column boxes." />
  <style type="text/css"><![CDATA[
  body > div
  {
  font: 1.25em/1 Ahem;
  height: 2em;
  width: 32em;

  column-gap: 1em;
  column-width: 8em;
  }

  /*

  N == max(1, floor((available-width + column-gap) / (column-width + column-gap)));
  N == max(1, floor((32em + 1em) / (8em + 1em)));
  N == max(1, floor(33em / 9em));
  N == max(1, floor(3.6));
  N == max(1, 3);
  N == 3;

  W == ((available-width + column-gap) / N) - column-gap;
  W == ((32em + 1em) / 3) - 1em;
  W == (33em / 3) - 1em;
  W == (11em) - 1em;
  W == 10em;

  H == 2em;

  */

  div
  {
  background: yellow;
  color: black;
  orphans: 1;
  widows: 1;
  }

  div > div {margin: 0 1em 1em;}

  div + div {color: blue;}

  div + div + div {color: pink;}
  ]]></style>
 </head>

 <body>

  <div>
	<div>
		bl ac
		bl ac
		bl ac
		bl ac
	</div>
	<div>
		bl ue
		bl ue
		bl ue
		bl ue
	</div>
	<div>
		Pi nk
		Pi nk
		Pi nk
		Pi nk
	</div>
  </div>

 </body>
</html>