<!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><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- 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="reference/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: 42em; } /* N == 3; W == max(0, (available-width - ((N - 1) * column-gap)) / N); W == max(0, (42em - ((3 - 1) * 3em)) / 3); W == max(0, (42em - (2 * 3em)) / 3); W == max(0, (42em - 6em) / 3); W == max(0, 36em / 3); W == max(0, 12em); W == 12em; So, the first column-rule should be at: 1.0em : margin-left of outer div 12.0em : width of 1st column box 1.0em : (3.0em / 2) - (1.0em / 2) : left edge of 1st column-rule ========= 14.0em The 2nd column-rule should be at: 1.0em : margin-left of outer div 12.0em : width of 1st column box 3.0em : first column-gap 12.0em : width of 2nd column box 1.0em : (3.0em / 2) - (1.0em / 2) : left edge of 2nd column-rule ========= 29.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: 12em : width of each outer column box - 2em : horizontal margin of each div inside ======= 10em : width of each inner multi-column elements N == 3; W == max(0, (available-width - ((N - 1) * column-gap)) / N); W == max(0, (10em - ((3 - 1) * 3em)) / 3); W == max(0, (10em - (2 * 3em)) / 3); W == max(0, (10em - 6em) / 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: 3em; } ]]></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>