list-style-position-012

Marker box position (inside principal box) - :before pseudo-element list-item ('list-style-position:inside')

WeasyPrint

This browser

Assertion
When the :before element is set as a list-item, it establishes a principal box into which a marker box is placed (when 'list-style-position:inside). The document tree content of the associated element must be placed after the principal box established by the :before pseudo element. Since the marker box of the associated element must be the first inline element within it's principal box (since 'list-style-position:inside'), that marker box must appear before the marker box and principal box of the :before pseudo-element.

Source

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3  <head>
 4   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5   <title>CSS Test: Marker box position (inside principal box) - :before pseudo-element list-item ('list-style-position:inside')</title>
 6   <link rel="author" title="James Hopkins" href="http://idreamincode.co.uk/css21testsuite">
 7   <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#list-style">
 8   <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#before-after-content">
 9   <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#block-boxes">
10   <meta name="flags" content="">
11   <meta name="assert" content="When the :before element is set as a list-item, it establishes a principal box into which a marker box is placed (when 'list-style-position:inside). The document tree content of the associated element must be placed after the principal box established by the :before pseudo element.  Since the marker box of the associated element must be the first inline element within it's principal box (since 'list-style-position:inside'), that marker box must appear before the marker box and principal box of the :before pseudo-element.">
12   <style type="text/css">
13   #test{
14   background:silver;
15   color:blue;
16   display:list-item;
17   font-size:85px;
18   list-style-position:inside;
19   margin:100px;
20   }
21   #test:before{
22   color:yellow;
23   content:'T';
24   display:list-item;
25   }
26   </style>
27  </head>
28  <body>
29   <p>To pass, there <strong>must</strong> be a blue bullet (filled-in circle) to the inside left edge of a grey box, below which must be a yellow bullet and a yellow letter to the right of that yellow bullet. Below the yellow bullet, there <strong>must</strong> be a blue letter.</p>
30   <div id="test">
31    T
32   </div>
33  </body>
34 </html>