Skip to content

Commit dc31da0

Browse files
committed
Rewrite the position:marker section.
1 parent 1460d30 commit dc31da0

2 files changed

Lines changed: 195 additions & 150 deletions

File tree

css3-lists/Overview.html

Lines changed: 98 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1196,26 +1196,18 @@ <h3 id=content-property><span class=secno>6.1. </span> Generating the value
11961196

11971197
<h2 id=positioning-markers><span class=secno>7. </span> Positioning Markers</h2>
11981198

1199-
<p>This section introduces a new positioning scheme, designed to model the
1200-
way in which "outside" list markers were traditionally positioned in CSS
1201-
2.1. Outside list markers now have their positioning defined in terms of
1202-
this new value.
1199+
<p> This section introduces a new positioning scheme, designed to model the
1200+
way in which <code class=css>list-style-position:outside</code>’ list
1201+
markers were traditionally positioned in CSS 2.1. Outside list markers now
1202+
have their positioning defined in terms of this new value.
12031203

1204-
<p>The new positioning scheme defined in this section can be used on all
1204+
<p> The new positioning scheme defined in this section can be used on all
12051205
elements, not just ‘<code class=css>::marker</code>’ pseudo-elements.
1206-
In some situations, such as legal proceedings or official minutes, the
1207-
precise form that the list marker takes is a vital part of the content.
1208-
It's not acceptable for the marker to change (from a custom-defined marker
1209-
to a default bullet or alpha marker) just because the UA is not rendering
1210-
CSS, or a server error is temporarily preventing the CSS file from being
1211-
loaded, as the precise form of the marker is used to officially refer to
1212-
that segment. The only way to guarantee that the marker will be rendered
1213-
correctly, regardless of whether CSS is applied, is to specify the marker
1214-
outside of CSS, directly in the document's markup. However, the page
1215-
author may still want to style the marker in many of the ways that are
1216-
available to them when using ordinary CSS-generated markers. To accomodate
1217-
this, the new positioning scheme can be used to position the
1218-
marker-in-content as if it were an ordinary CSS-generated marker.
1206+
For example, this can be used to position explicit elements serving as
1207+
markers in a legal document, so that the list item has a marker whose
1208+
value is guaranteed to be correct regardless of whether the CSS is applied
1209+
(often a requirement in legal documents), but which is positioned like a
1210+
native CSS marker.
12191211

12201212
<h3 id=position-marker><span class=secno>7.1. </span> The ‘<code
12211213
class=css>marker</code>’ value for ‘<code
@@ -1231,7 +1223,7 @@ <h3 id=position-marker><span class=secno>7.1. </span> The ‘<code
12311223
<tr>
12321224
<th>New Value:
12331225

1234-
<td><code class=css>marker</code>
1226+
<td>marker
12351227

12361228
<tr>
12371229
<th>Initial:
@@ -1264,18 +1256,19 @@ <h3 id=position-marker><span class=secno>7.1. </span> The ‘<code
12641256
<td>see prose, otherwise same as CSS2.1
12651257
</table>
12661258

1267-
<p>The ‘<code class=css>marker</code>’ value for ‘<code
1259+
<p> The ‘<code class=css>marker</code>’ value for ‘<code
12681260
class=property>position</code>’ depends on the element it is set on
1269-
having a list item ancestor. If the specified value of ‘<code
1270-
class=property>position</code>’ is ‘<code class=css>marker</code>
1271-
and the element does not have a list item ancestor, ‘<code
1261+
having a <a href="#list-item"><i>list item</i></a> ancestor. If the
1262+
specified value of ‘<code class=property>position</code>’ is ‘<code
1263+
class=css>marker</code>’ and the element does not have a <a
1264+
href="#list-item"><i>list item</i></a> ancestor, ‘<code
12721265
class=property>position</code>’ must compute to ‘<code
1273-
class=property>relative</code>’ on the element. An element with <code
1274-
class=css>position:marker</code> counts as <a
1266+
class=property>relative</code>’ on the element. An element with <code
1267+
class=css>position:marker</code> counts as <a
12751268
href="http://www.w3.org/TR/CSS21/visuren.html#absolutely-positioned">absolutely
12761269
positioned</a>.
12771270

1278-
<p>To calculate the marker's position, we must first define a few terms:
1271+
<p> To calculate the marker's position, we must first define a few terms:
12791272

12801273
<dl>
12811274
<dt><dfn id=ancestor-list-item
@@ -1288,118 +1281,137 @@ <h3 id=position-marker><span class=secno>7.1. </span> The ‘<code
12881281
reference element</dfn>
12891282

12901283
<dd>
1291-
<p>If the <a href="#ancestor-list-item"><i>ancestor list item</i></a> has
1292-
<code class=css>marker-attachment:list-item</code>’, the <a
1284+
<p> If the <a href="#ancestor-list-item"><i>ancestor list item</i></a>
1285+
has <code class=css>marker-attachment:list-item</code>’, the <a
12931286
href="#marker-positioning-reference-element"><i>marker positioning
12941287
reference element</i></a> is the <a
12951288
href="#ancestor-list-item"><i>ancestor list item</i></a>.
12961289

1297-
<p>Otherwise, if the <a href="#ancestor-list-item"><i>ancestor list
1290+
<p> Otherwise, if the <a href="#ancestor-list-item"><i>ancestor list
12981291
item</i></a> has ‘<code
12991292
class=css>marker-attachment:list-container</code>’ and has a parent
13001293
element, the <a href="#marker-positioning-reference-element"><i>marker
13011294
positioning reference element</i></a> is the <a
13021295
href="#ancestor-list-item"><i>ancestor list item's</i></a> parent.
13031296

1304-
<p>Otherwise, the <a
1297+
<p> Otherwise, the <a
13051298
href="#marker-positioning-reference-element"><i>marker positioning
13061299
reference element</i></a> is the <a
13071300
href="#ancestor-list-item"><i>ancestor list item</i></a>.
13081301

13091302
<dt><dfn id=list-item-positioning-edge>list item positioning edge</dfn>
13101303

1311-
<dd>The border edge of the <a href="#ancestor-list-item"><i>ancestor list
1312-
item</i></a> corresponding to the "start" or "before" edge of the <a
1304+
<dd> The border edge of the <a href="#ancestor-list-item"><i>ancestor list
1305+
item</i></a> corresponding to the "start" or "head" edge of the <a
13131306
href="#marker-positioning-reference-element"><i>marker positioning
13141307
reference element</i></a>, whichever is in the <a
13151308
href="#ancestor-list-item"><i>ancestor list item's</i></a> inline axis.
13161309

13171310
<dt><dfn id=marker-positioning-edge>marker positioning edge</dfn>
13181311

1319-
<dd>The opposing edge relative to the <a
1320-
href="#list-item-positioning-edge"><i>list item positioning edge</i></a>
1321-
on the marker's margin box. For example, if the <i>list item positioning
1322-
edge ended up being the left border edge of the <a
1323-
href="#ancestor-list-item"><i>ancestor list item</i></a>, the <a
1324-
href="#marker-positioning-edge"><i>marker positioning edge</i></a> would
1325-
be the right margin edge of the marker. </i>
1312+
<dd> The outer edge of the marker that's on the opposite side from the <a
1313+
href="#list-item-positioning-edge"><i>list item positioning edge</i></a>.
1314+
For example, if the <i>list item positioning edge ended up being the left
1315+
border edge of the <a href="#ancestor-list-item"><i>ancestor list
1316+
item</i></a>, the <a href="#marker-positioning-edge"><i>marker
1317+
positioning edge</i></a> would be the right margin edge of the marker.
1318+
</i>
13261319
</dl>
13271320

1328-
<p>The marker's position in the <a href="#ancestor-list-item"><i>ancestor
1321+
<p> The marker's position in the <a href="#ancestor-list-item"><i>ancestor
13291322
list item's</i></a> block axis is calculated according to the <a
13301323
href="http://www.w3.org/TR/CSS21/visuren.html#normal-flow">normal
1331-
flow</a>. <span class=note>In the Positioned Layout Module this will be
1332-
defined more precisely in terms of placeholders.</span>
1324+
flow</a>.
13331325

1334-
<p>The marker's position in the <a href="#ancestor-list-item"><i>ancestor
1326+
<p> The marker's position in the <a href="#ancestor-list-item"><i>ancestor
13351327
list item's</i></a> inline axis must be set such that the <a
13361328
href="#marker-positioning-edge"><i>marker positioning edge</i></a> is
13371329
flush with the <a href="#list-item-positioning-edge"><i>list item
13381330
positioning edge</i></a>.
13391331

1340-
<p class=note>The purpose of this somewhat convoluted definition is to
1341-
position the marker flush against its list item, and then when
1332+
<p class=note> Note: The purpose of this somewhat convoluted definition is
1333+
to position the marker flush against its list item, and then when
13421334
"marker-attachment:list-container", keep all the markers for a given list
13431335
on the same side of their list items even in mixed-direction text, so that
1344-
authors can specify padding on only one side and still ensure their
1345-
markers are visible. And on top of all that, do something sane in the face
1346-
of potentially differing writing-modes on the marker, list item, and
1347-
container.
1336+
authors can specify padding on only one side of the list container and
1337+
still ensure their markers are visible. And on top of all that, do
1338+
something sane in the face of potentially differing writing-modes on the
1339+
marker, list item, and container.
13481340

1349-
<p>All elements or pseudo-elements with <code
1350-
class=css>"position:marker"</code> that share a common <a
1341+
<p> All elements or pseudo-elements with <code
1342+
class=css>position:marker</code> that share a common <a
13511343
href="#ancestor-list-item"><i>ancestor list item</i></a> are known as <dfn
13521344
id=markers-associated-with-that-list-item title=associated-marker>markers
13531345
associated with that list item</dfn>.
13541346

1355-
<p>The ‘<code class=property>top</code>’, ‘<code
1347+
<p> The ‘<code class=property>top</code>’, ‘<code
13561348
class=property>right</code>’, ‘<code class=property>bottom</code>’,
13571349
and ‘<code class=property>left</code>’ properties specify offsets
13581350
relative to the top, right, bottom, and left edges (respectively) of the
13591351
element itself, similar to how relative positioning works.
13601352

13611353
<div class=example>
1362-
<p><code class=css>position:marker</code>’ can be used when the
1354+
<p> <code class=css>position:marker</code>’ can be used when the
13631355
precise list marker is important for the content, not a stylistic choice,
13641356
but the normal <em>appearance</em> of lists is still desired. For
13651357
example, this trimmed snippet of the US Code of Laws may be marked up as
13661358
the following in HTML:
13671359

1368-
<pre>
1369-
&lt;style>
1370-
ol { list-style: none; }
1371-
.marker { position: marker; }
1372-
&lt;/style>
1373-
&lt;ol>
1374-
&lt;li>
1375-
&lt;span class='marker'>(a)&lt;/span> Definitions.— For purposes of this section—
1376-
&lt;ol>
1377-
&lt;li>&lt;span class='marker'>(1)&lt;/span> the term “agency” means agency as...&lt;/li>
1378-
&lt;li>&lt;span class='marker'>(2)&lt;/span> the term “individual” means a citizen...&lt;/li>
1379-
&lt;/ol>
1380-
&lt;/li>
1381-
&lt;li>
1382-
&lt;span class='marker'>(b)&lt;/span> Conditions of Disclosure.— No agency shall disclose...
1383-
&lt;ol>
1384-
&lt;li>&lt;span class='marker'>(1)&lt;/span> to those officers and employees of the agency which...&lt;/li>
1385-
&lt;li>&lt;span class='marker'>(2)&lt;/span> required under section 552 of this title;&lt;/li>
1386-
&lt;/ol>
1387-
&lt;/li>
1388-
&lt;/ol></pre>
1360+
<pre><!--
1361+
-->&lt;style>
1362+
<!--
1363+
-->ol { list-style: none; }
1364+
<!--
1365+
-->.marker { position: marker; }
1366+
<!--
1367+
-->&lt;/style>
1368+
<!--
1369+
-->&lt;ol>
1370+
<!--
1371+
--> &lt;li>
1372+
<!--
1373+
--> &lt;span class='marker'>(a)&lt;/span> Definitions.— For purposes of this section—
1374+
<!--
1375+
--> &lt;ol>
1376+
<!--
1377+
--> &lt;li>&lt;span class='marker'>(1)&lt;/span> the term “agency” means agency as...
1378+
<!--
1379+
--> &lt;li>&lt;span class='marker'>(2)&lt;/span> the term “individual” means a citizen...
1380+
<!--
1381+
--> &lt;/ol>
1382+
<!--
1383+
--> &lt;li>
1384+
<!--
1385+
--> &lt;span class='marker'>(b)&lt;/span> Conditions of Disclosure.— No agency shall disclose...
1386+
<!--
1387+
--> &lt;ol>
1388+
<!--
1389+
--> &lt;li>&lt;span class='marker'>(1)&lt;/span> to those officers and employees of the agency...
1390+
<!--
1391+
--> &lt;li>&lt;span class='marker'>(2)&lt;/span> required under section 552 of this title;
1392+
<!--
1393+
--> &lt;/ol>
1394+
<!--
1395+
-->&lt;/ol></pre>
13891396

1390-
<p>The preceding document should render something like this:
1397+
<p> The preceding document should render something like this:
13911398

1392-
<pre>
1393-
(a) Definitions.— For purposes of this section—
1394-
(1) the term “agency” means agency as...
1395-
(2) the term “individual” means a citizen...
1396-
(b) Conditions of Disclosure.— No agency shall disclose...
1397-
(1) to those officers and employees of the agency which...
1398-
(2) required under section 552 of this title;</pre>
1399-
1400-
<p>Importantly, it will <strong>always</strong> be presented something
1401-
like that, with those exact list markers, even if the stylesheet is
1402-
unavailable, so other documents can refer to those list markers and be
1399+
<pre><!--
1400+
-->(a) Definitions.— For purposes of this section—
1401+
<!--
1402+
--> (1) the term “agency” means agency as...
1403+
<!--
1404+
--> (2) the term “individual” means a citizen...
1405+
<!--
1406+
-->(b) Conditions of Disclosure.— No agency shall disclose...
1407+
<!--
1408+
--> (1) to those officers and employees of the agency...
1409+
<!--
1410+
--> (2) required under section 552 of this title;</pre>
1411+
1412+
<p> Importantly, even if the stylesheet is unavailable, the list markers
1413+
will appear the same (though they will be positioned slightly
1414+
differently), so other documents can refer to those list markers and be
14031415
confident that the reference will always be resolvable.
14041416
</div>
14051417

0 commit comments

Comments
 (0)