csswg/css-line-grid Overview.html,1.17,1.18 Overview.src.html,1.17,1.18

Update of /sources/public/csswg/css-line-grid
In directory hutz:/tmp/cvs-serv9592

Modified Files:
	Overview.html Overview.src.html 
Log Message:
Replace old line-grid proposal with one from Kyoto F2F (plus line-slack, which is just a new crazy idea)

Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css-line-grid/Overview.html,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- Overview.html	26 Oct 2011 22:54:42 -0000	1.17
+++ Overview.html	19 Jan 2012 02:28:10 -0000	1.18
@@ -39,14 +39,14 @@
 
    <h1>CSS Line Grid Module</h1>
 
-   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 26 October
-    2011</h2>
+   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 19 January
+    2012</h2>
 
    <dl>
     <dt>This version:
 
[...1185 lines suppressed...]
+     <th><a class=property href="#line-snap0">line-snap</a>
 
-     <td>none | baseline | block | line
+     <td>none | baseline | contain
 
      <td>none
 
-     <td>block containers
+     <td>all elements
 
      <td>yes
 
-     <td>N/A
+     <td>no
 
-     <td>visual
+     <td>N/A
   </table>
   <!--end-properties-->
 </html>

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css-line-grid/Overview.src.html,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- Overview.src.html	26 Oct 2011 22:54:42 -0000	1.17
+++ Overview.src.html	19 Jan 2012 02:28:10 -0000	1.18
@@ -62,8 +62,6 @@
 <hr title="Separator for header">
 </div>
 
-<p style="background: #fdd; color: red; font-weight: bold; text-align: center; padding: .5em; border: thick solid red; border-radius: 1em; position: fixed; bottom: 1em; left: 1em; right: 1em;">This specification is not being actively maintained, and should not be used as a guide for implementations.  It may be revived in the future, but for now should be considered obsolete.  <br>If you have questions or comments on this specification, please send an email to the CSS Working Group's mailing list at <a href="mailto:www-style@w3.org">www-style@w3.org</a>.  (Before sending mail for the first time, you have to subscribe at <a href="http://lists.w3.org/Archives/Public/www-style/">http://lists.w3.org/Archives/Public/www-style/</a>.)</p>
-
 <h2 class="no-num no-toc" id=abstract>Abstract</h2>
 
   <p>CSS is a language for describing the rendering of structured documents
@@ -128,6 +126,22 @@
     <p class="caption">Vertical rhythm kept through pictures and different size of text in a multi-column document.</p>
   </div>
 
+  <div class="example">
+    <div class="sidefigure">
+      <img src="line-grid-wrap.png"
+        width="276" height="244"
+        alt="Large text wraps within line grids"
+        />
+      <p class="caption">Large text wraps within line grids.</p>
+    </div>
+
+    <p>When a different size of text, such as a headings, wraps,
+      it is usually aligned to grids as a block and
+      the lines within the block do not align.</p>
+
+    <br style="clear:both;"/>
+   </div>
+
   <div id="ex-sidenote" class="figure">
     <div class="sidenote-block">
       <div class="sidenote-body">
@@ -179,36 +193,8 @@
 
 <h3 id="placement">Module Interactions</h3>
 
-  <p class="issue">Explain, normatively, how this module affects the definition of CSS.</p>
-
-  <p>This module replaces and extends the <var class="issue">SUMMARIZE HERE</var>
-  features defined in [[!CSS21]] sections <var class="issue">W.X and Y.Z</var>.
-
-<h3 id="conventions">Document Conventions</h3>
-
-  <p>Conformance requirements are expressed with a combination of
-  descriptive assertions and RFC 2119 terminology. The key words “MUST”,
-  “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
-  “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
-  document are to be interpreted as described in RFC 2119.
-  However, for readability, these words do not appear in all uppercase
-  letters in this specification.
-  
-  <p>All of the text of this specification is normative except sections
-  explicitly marked as non-normative, examples, and notes. [[!RFC2119]]</p>
-  
-  <p>Examples in this specification are introduced with the words “for example”
-  or are set apart from the normative text with <code>class="example"</code>,
-  like this:
-  
-  <div class="example">
-    <p>This is an example of an informative example.</p>
-  </div>
-  
-  <p>Informative notes begin with the word “Note” and are set apart from the
-  normative text with <code>class="note"</code>, like this:
-  
-  <p class="note">Note, this is an informative note.</p>
+  <p>This module extends the line box model defined in [[!CSS21]] sections
+  9.4.2 and 10.8.
 
 <h3 id="values">Values</h3>
 
@@ -226,28 +212,27 @@
   keyword as their property value. For readability it has not been repeated
   explicitly.
   
-<h2>Defining Grids</h2>
-
-<h3 id="layout-grid-line-prop">Define Line Grids: the 'layout-grid-line' property</h3>
+<h2 id=line-grid>
+Defining a Line Grid: the 'line-grid' property</h2>
 
   <table class=propdef>
     <tr>
       <th>Name:
-      <td><dfn>layout-grid-line</dfn>
+      <td><dfn>line-grid</dfn>
     <tr>
-      <th>Value:
-      <td>none
-        | auto
-        | &lt;length&gt;
-        | &lt;percentage&gt;
+      <th><a href="#values">Value</a>:
+      <td>&lt;identifier&gt;
     <tr>
       <th>Initial:
-      <td>none
+      <td>root-grid
     <tr>
       <th>Applies to:
       <td>block containers
     <tr>
       <th>Inherited:
+      <td>yes
+    <tr>
+      <th>Animatable:
       <td>no
     <tr>
       <th>Percentages:
@@ -258,65 +243,122 @@
     <tr>
       <th>Computed&nbsp;value:
       <td>specified value
+    <tr>
+      <th>Canonical order:
+      <td><abbr title="follows order of property value definition">per grammar<abbr>
   </table>
 
-  <p>This property defines a line grid for the element and its descendent elements.
-    Possible values are:</p>
+  <p>Specifies which line grid the line boxes of this element (if any)
+  will align.
 
-  <p class="issue">An implementer said the grid's scope should be limited to the same BFC,
-    as referring property values and position of parent elements could be difficult to implement
-    if the element is in different BFC than the parent.
-    This can mean a float cannot share the grids with its parent, which is not ideal.
-    How can we solve this?</p>
+  <p>If there does not already exist a line grid with the specified name,
+  then this property creates a line grid using the font and line layout
+  settings of this element. The line grid consists of a series of horizontal
+  lines corresponding to all the baselines (alphabetic, text-top, text-bottom,
+  mathematic, central, hanging, etc.) and to the line-over and line-under
+  edges, positioned where they would fall if the contents of this element
+  consisted entirely of line boxes filled with text (no sub-elements) using
+  the first available font.
+  If the element is paginated, the line grid is restarted on each page;
+  since line boxes cannot be paginated, no page begins with the bottom part
+  of a line's grid.
 
-  <dl>
-    <dt><dfn title="layout-grid-line::none">''none''</dfn></dt>
-    <dd>No line grid is specified.</dd>
-    <dt><dfn title="layout-grid-line::auto">''auto''</dfn></dt>
-    <dd>The grid line size is determined by the computed value of the 'line-height' property.</span></dd>
-    <dt><dfn title="layout-grid-line::length">&lt;length&gt;</dfn></dt>
-    <dd>Size of the line grid's unit space (a.k.a. "line pitch").</dd>
-    <dt><dfn title="layout-grid-line::percent">&lt;percent&gt;</dfn></dt>
-    <dd>Size of the line grid's unit space
-      relative to the logical height of the parent element.
-      If the parent has no explicit height, it is treated as ''auto''.
-      <span class="issue">This was defined in
-        <a href="http://www.w3.org/TR/2001/WD-css3-text-20010517/#layout-grid-line-prop">CSS3 module: text WD 20010517</a>,
-        but not sure how much useful this is</span></dd>
-  </dl>
+  <p class="note">As a side effect of the initial value and this definition,
+  the root element always sets up a line grid, so that 'line-snap' can be used
+  even if the author has not explicitly set up a line grid. 
 
-  <p>The defined grid uses the position of the element as the origin of the grid.
-    It uses the top of the element as the origin of the grid for horiozntal text flow.
-    Similarly, it uses the right of the element as the origin of the grid
-    for 'writing-mode' is ''vertical-rl'',
-    and the left of the element for ''vertical-lr''.</p>
+<h2>Snapping to a Grid</h2>
 
-  <p class="issue">Define behavior for paged media/column break</p>
-  <p class="issue">TBD:
-    I might need to copy more text from
-    <a href="http://www.w3.org/TR/2001/WD-css3-text-20010517/#layout-grid-line-prop">CSS3 module: text WD 20010517</a>.</p>
+<h3 id=line-snap>
+Snapping Line Boxes: the 'line-snap' property</h3>
 
-<h2>Using Grids</h2>
+  <table class=propdef>
+    <tr>
+      <th>Name:
+      <td><dfn>line-snap</dfn>
+    <tr>
+      <th><a href="#values">Value</a>:
+      <td>none | baseline | contain
+    <tr>
+      <th>Initial:
+      <td>none
+    <tr>
+      <th>Applies to:
+      <td>all elements
+    <tr>
+      <th>Inherited:
+      <td>yes
+    <tr>
+      <th>Animatable:
+      <td>no
+    <tr>
+      <th>Percentages:
+      <td>N/A
+    <tr>
+      <th>Media:
+      <td>visual
+    <tr>
+      <th>Computed&nbsp;value:
+      <td>specified value
+    <tr>
+      <th>Canonical order:
+      <td><abbr title="follows order of property value definition">per grammar<abbr>
+  </table>
 
-<h3 id="layout-grid-mode-prop">Grid Mode: the 'layout-grid-mode' property</h3>
+  <p>This property applies to all the line boxes directly contained by
+  the element, and, when not ''none'', causes each line box to shift
+  downward (possibly by zero) until it snaps to the line grid specified
+  by 'line-grid'. (The unshifted position is the position that would be
+  determined by normal line stacking rules, with consideration of any
+  new controls defined by other modules such as [[CSS3LINE]].) Values
+  have the following meanings:
+
+  <dl>
+  <dt><dfn>''none''</dfn>
+    <dd>Line boxes do not snap to the grid; they stack normally.
+  <dt><dfn>''baseline''</dfn>
+    <dd>The dominant baseline snaps with the matching baseline on the
+    line grid applying to the element.
+  <dt><dfn>''contain''</dfn>
+    <dd>Two baselines are used to align the line box: the line box is
+    snapped so that its ''central'' baseline (halfway between the
+    ''text-over'' and ''text-under'' baselines) is centered between
+    one of the line grid's ''text-over'' baselines and a subsequent
+    (but not necessarily consecutive) ''text-under'' baseline.
+  </dl>
+
+  <p>In some cases lines of equal line height will not align perfectly
+  to a baseline grid: this happens, for example, when fonts (of the same
+  size) with different baseline tables are mixed on a line.
+  For this reason, if shifting the line by the largest difference between
+  the smallest ascent and largest ascent of a single size used on the line
+  would result in a smaller shift, then the contents of the line box are
+  shifted up within the line box so as to allow the line to snap without
+  jumping downward to the next grid line.
+
+<h3 id=line-slack>
+Line Snap Allowance: the 'line-slack' property</h3>
 
   <table class=propdef>
     <tr>
       <th>Name:
-      <td><dfn>layout-grid-mode</dfn>
+      <td><dfn>line-slack</dfn>
     <tr>
-      <th>Value:
-      <td>none | baseline | block | line
+      <th><a href="#values">Value</a>:
+      <td>none | &lt;integer&gt;
     <tr>
       <th>Initial:
       <td>none
     <tr>
       <th>Applies to:
-      <td>block containers
+      <td>all elements
     <tr>
       <th>Inherited:
       <td>yes
     <tr>
+      <th>Animatable:
+      <td>no
+    <tr>
       <th>Percentages:
       <td>N/A
     <tr>
@@ -325,133 +367,180 @@
     <tr>
       <th>Computed&nbsp;value:
       <td>specified value
+    <tr>
+      <th>Canonical order:
+      <td><abbr title="follows order of property value definition">per grammar<abbr>
   </table>
 
-  <p>This property controls how lines and blocks are aligned to grids.
-    Values have the following meanings:</p>
-  
+  <p>This property specifies the slack in snapping lines to a grid.
+
   <dl>
-    <dt><dfn title="layout-grid-mode::none">''none''</dfn></dt>
-      <dd>Do not align any objects to the grids.</dd>
-    <dt><dfn title="layout-grid-mode::baseline">''baseline''</dfn></dt>
-      <dd>Align baselines to the line grids.
-        <!--
-        The line in this definition is a line box
-        with before margin included if it is the first line of a block,
-        and with after margin if last.
-        -->
-        The height is the height of the line box.
-        Increasing heights to fit to grids is done by
-        increasing the computed height of the line box.
-        <span class="issue">How to make this value work well with images, headings, etc.
-          needs further thoughts.</span>
-      </dd>
-    <dt><dfn title="layout-grid-mode::block">''block''</dfn></dt>
-      <dd>Align blocks to the line grids.
-        <!--
-        The height of the block in this definition includes margins.
-        -->
-        The height includes paddings and borders, but not margins.
-        Increasing heights to fit to grids is done by
-        adding to computed margins.
-      </dd>
-    <dt><dfn title="layout-grid-mode::line">''line''</dfn></dt>
-      <dd>Align line boxes to the line grids.
-        <!--
-        The line in this definition is a line box
-        with before margin included if it is the first line of a block,
-        and with after margin if last.
-        -->
-        The height is the height of the line box.
-        Increasing heights to fit to grids is done by
-        increasing the computed height of the line box.
-      </dd>
+  <dt><dfn>''none''</dfn>
+    <dd>No slack: each line box is snapped to the grid.
+  <dt><dfn>&lt;integer&gt;</dfn>
+    <dd>Nominally, each <var>n</var>th line box is snapped to the grid <em>or</em>
+    each <var>n</var>th grid line has a line box snapped to it, whichever
+    results in smaller shifts, for the specified integer as <var>n</var>.
+    A value of ''1'' allows, for example, lines of half the grid height
+    to fit twice as densely, while a value of ''2'' also allows lines
+    1.5 times the grid height to match the grid 2:3.
+    A value less than ''1'' is invalid.
   </dl>
-  <p class="issue">Handling margins and borders needs review</p>
 
-  <p>When this property is set to anything other than ''none'',
-    the computed height of the object is increased to
-    the smallest multiple of the grid height
-    that is equal to or smaller than the original computed height.</p>
+  <p>When 'line-snap' is given as a &lt;baseline&gt;, the 'line-slack'
+  property interpolates a grid against the main line grid and snaps
+  the element's line boxes against this grid. The interpolated grid is
+  drawn by creating a new line grid using the baseline table and
+  'line-height' of the current element and increasing the inter-line
+  spacing of this new grid to snap according to the element's 'line-snap'
+  and 'line-slack' values. The first snapped line is chosen to minimize
+  the shift of the first line box of the element.
+  The interpolated grid is only used for this block's line boxes;
+  descendant boxes interpolate their own grid against the main grid.)
 
-  <p>When the value of this property is ''baseline'',
-    the line box is then moved so that its baseline is aligned
-    to the next closest grid.</p>
+  <p class="issue">Define something sane for ''line-snap: contain''.
 
-  <p>When the value of this property is either ''block'' or ''line'',
-    the object is vertically centered within the grid row.
-    If the computed height is larger than the grid space,
-    then the object is centered within the smallest number of grid rows
-    necessary for the object to fit in.
-    The starting alignment point is moved accordingly.
-    This is illustrated below,
-    where <em>a</em> represents the numerical 'layout-grid-line' value,
-    and <em>b</em> and <em>c</em> are half the difference between the computed line-heights
-    and either the layout-grid-line value or twice the value respectively.</p>
+<!--
+  <p>When 'line-snap' is ''contain'', then 'line-slack' not ''none''
+  is handled by line-snapping using the ''central'' baseline any time
+  the interpolated grid is narrower than the main grid. It has no effect
+  when the interpolated grid is wider than the main grid.
 
-  <div class="figure">
-    <img src="lgl.gif"
-      alt="Layout of content within a line grid"
-      />
-    <p class="caption">Layout of content within a line grid,
-      where <em>a</em> represents the layout-grid-line value,
-      and the alignment baseline is at the bottom (after-edge).</p>
-  </div>
+  <p>When 'line-snap' is ''contain'', the 'line-slack' property creates
+  an interpolated grid as above, but instead of snapping according to
+  a fixed ratio, it increases the spacing of the interpolated grid so
+  that its first ''text-over'' baseline aligns to one of the main grid's
+  ''text-over'' baselines and its last ''text-under'' baseline aligns
+  to one of the main grid's ''text-under'' baseline. In this case, the
+  integer represents the maximum number of line boxes in the block
+  before slack is ignored. The slack is 
+-->
 
-  <p>As for regular height computation, the ruby box is treated specifically.
-    In a similar fashion to the line-height determination process,
-    only the ruby base element is considered for centering purposes,
-    however the above and/or the after space should be sufficient
-    to fit the ruby text above and/or after the base text within the grid-line space.
-    If this is not the case,
-    the grid-line size needs to be increased in multiple grid rows until the whole ruby box fits.
-    <span class="issue">Is just ignoring ruby text enough? like rt { layout-grid-mode: ignore; }
-      or nothing needed to be defined if line-stacking-ruby: auto does the work?</span>
-  </p>
+  <p>User Agents are not required to support values greater than 4;
+  unsupported used values higher than 4 must be clamped to 4.
 
-  <p>Note that in order for this property to have an effect,
-    line grids must be defined by the 'layout-grid-line' property.</p>
+<p class="issue">
+Can it be extended to handle vertical justification?
 
-  <p class="issue">This design does not allow authors to specify
-    the exact top position of the first line.
-    It is probably ok for web/epub where viewport is not fixed and therefore
-    the UA has to absorb fractions using margins,
-    but print folks may want more precise controls.</p>
+<h3 id=box-snap>
+Snapping Block Boxes: the 'box-snap' property</h3>
 
-  <p class="issue">Need to think more about use cases in tables.
-    Turning off line grids for table cells is one easy way
-    and probably is good enough when all cells are single line,
-    but there probably are more use cases.</p>
+  <table class=propdef>
+    <tr>
+      <th>Name:
+      <td><dfn>box-snap</dfn>
+    <tr>
+      <th><a href="#values">Value</a>:
+      <td>[ none | margin-box | border-box | half-border ]? ]{1,4} [ / &lt;identifier&gt;{1,4} ]
+    <tr>
+      <th>Initial:
+      <td>none
+    <tr>
+      <th>Applies to:
+      <td>block-level boxes and internal table elements except table cells
+    <tr>
+      <th>Inherited:
+      <td>yes
+    <tr>
+      <th>Animatable:
+      <td>no
+    <tr>
+      <th>Percentages:
+      <td>N/A
+    <tr>
+      <th>Media:
+      <td>visual
+    <tr>
+      <th>Computed&nbsp;value:
+      <td>specified value
+    <tr>
+      <th>Canonical order:
+      <td><abbr title="follows order of property value definition">per grammar<abbr>
+  </table>
 
-  <p class="issue">Need to think more about use cases in forms.</p>
+  <p>Specifies which edges, if any, are snapped to the line box grid.
+  If four values are specified, they apply to the before, end, after, and
+  start edges of the box, respectively. If the start edge is omitted, it is the
+  same as the end. If the after edge is omitted, it is the same as the
+  before. If the end edge is omitted, it is assigned ''none''.
+  Values have the following meanings:
 
-  <div class="example">
-    <div class="sidefigure">
-      <img src="line-grid-wrap.png"
-        width="276" height="244"
-        alt="Large text wraps within line grids"
-        />
-      <p class="caption">Large text wraps within line grids.</p>
-    </div>
+  <dl>
+  <dt><dfn>none</dfn>
+    <dd>The edge is not snapped to any grid.</dd>
+  <dt><dfn>margin-box</dfn>
+    <dd>The margin edge is snapped to the nearest grid line.
+  <dt><dfn>border-box</dfn>
+    <dd>The border edge is snapped to the nearest grid line.
+  <dt><dfn>half-border</dfn>
+    <dd>The edge halfway between the border and padding edges is snapped to
+    the nearest grid line.
+  <dt><dfn>&lt;identifier&gt;</dfn>
+    <dd>Names the grid to snap to. Defaults to the effective 'line-grid'.
+    If the named grid does not exist (or has no lines in the appropriate
+    dimension), then the affected edge is not snapped.
+    <p class="note">This allows the author to specify a grid that is not
+    a line grid.
+  </dl>
 
-    <p>When a different size of text, such as a headings, wraps,
-      it is usually aligned to grids as a block and
-      the lines within the block do not align.</p>
+  <p>When snapping to baselines on a line grid, either the <i>text-over</i>
+  or <i>text-under</i> baseline is chosen: whichever one is on the matching
+  side of the central baseline. For example, when snapping the before edge
+  in horizontal writing mode, the <i>over</i> edge is chosen. In some
+  cases the <i>under</i> edge might be used instead for the before edge:
+  for example, when the writing mode of the line grid doesn't match that of
+  the affected element, or when due to the 'text-orientation' settings the
+  <i>under</i> side corresponds to the <i>after</i> edge.
 
-    <p>This effect can be achieved by the following code:</p>
-    <pre><code class="css">
-<!-- -->body { line-grid-mode: line; }
-<!-- -->h1 { line-grid-mode: block; }
-<!-- --></code></pre>
+  <p>To snap a before, start, or end edge of a block-level element or its
+  after margin-box edge to a grid line, the effective margin is increased
+  at that edge. To snap an after border-box or half-border edge to a grid
+  line, the effective content-box height is increased. If, however, the
+  box is an empty block that could be
+  <a href="http://www.w3.org/TR/CSS21/box.html">collapsed through</a>,
+  then this property has no effect. [[!CSS21]]
 
-    <br style="clear:both;"/>
-   </div>
+  <p>When applied to table row group and table row boxes, 'box-snap' only
+  affects the before and after edges, and only if those edges are not at
+  the beginning or end of the table, respectively. To snap a before edge
+  on a table row or row group, the preceding row's height is increased.
+  To snap an after edge on a table row or row group, the affected row's
+  height is increased.
 
-<h3>Grid Shorthand: the 'layout-grid' property</h3>
+  <p>When applied to table column group and table column boxes, 'box-snap'
+  only affects the start and end edges, and only if those edges are not at
+  the start or end of the table, respectively. How the space is redistributed
+  among columns to satisfy snapping constraints is not defined, however:
+  <ul>
+    <li>In an auto-sized table no column may be smaller than its minimum
+       content width.
+    <li>The resulting table must not exceed its original measure if it
+      had a non-''auto'' measure.
+    <li>The adjusted widths must not cause the table to overflow its
+      containing block any more than it would with ''box-snap: none''.
+  </ul>
+  <p>To satisfy these constraints, some column edges may remain unsnapped.
+<!-- 
+  Line snapping for columnsis processed from start to end: column widths
+  are increased or decreased in order to snap the column edges.
+  By preference, the widths are increased.
+  However if the table has an explicit size or is auto-sized and the resulting
+  table overflows its containing block, then columns whose widths were
+  increased must, one by one, switch their snap to decreasing the column
+  width, until the table reaches its specified size or 
+-->
+  <p>For internal table elements in separated borders tables, ''margin-box''
+  represents the edge at the midpoint of the border spacing. For collapsed
+  tables, ''margin-box'' and ''border-box'' are treated as ''half-border''.
+  When two coinciding edges have conflicting snap values, the later value
+  wins.
 
-  <p class="issue">TBD</p>
+<h2>Layout in Grid Units</h2>
 
-<h3 id="grid-length-unit">The ''<span class="index" title="length unit::gd">gd</span>'' length unit</h3>
+<p class="issue">This section is mostly unrevised brainstorming.</p>
+
+<h3 id="grid-length-unit">
+Grid Length Units: the ''gd'' unit</h3>
 
   <p>The existence of a grid in an element makes it possible
     and very useful to express various measurements in that
@@ -503,62 +592,11 @@
 
   <p class="issue">''gem'' length unit is also requested</p>
 
-<h3>Forcing Line Width to Multiple of <em>em</em></h3>
-  <p class="issue">There are 3 ideas for this, and all ideas are listed here for disucssions.</p>
-
-<h4>Character Grid: the 'layout-grid-char' property</h4>
-
-  <table class=propdef>
-    <tr>
-      <th>Name:
-      <td><dfn>layout-grid-char</dfn>
-    <tr>
-      <th>Value:
-      <td>none
-        | auto
-        | &lt;length&gt;
-    <tr>
-      <th>Initial:
-      <td>none
-    <tr>
-      <th>Applies to:
-      <td>block containers
-    <tr>
-      <th>Inherited:
-      <td>no
-    <tr>
-      <th>Percentages:
-      <td>N/A
-    <tr>
-      <th>Media:
-      <td>visual
-    <tr>
-      <th>Computed&nbsp;value:
-      <td>specified value
-  </table>
-
-  <p>This property defines a character grid for the element. Possible values are:</p>
 
-  <p>When a character grid is defined,
-    start and end edges of a line box snap to the nearest grid
-    in the direction to shorten the line box.</p>
-
-  <div class="figure">
-    <object
-      data="line-length.svg" type="image/svg+xml"
-      width="340" height="158">
-    </object>
-    <p class="caption">The gray part of a line box is rounded down to snap to the grid.
-      The second line box has a float on the left (green),
-      and therefore its start edge snaps to the grid as well.</p>
-  </div>
-
-  <p class="issue">Should we add ''edges'' to the 'line-grid-mode' property?</p>
-
-<h4 id="round-length">Rounding Lengths to Multiple of Units:
+<h3 id="round-length">Rounding Lengths to Multiple of Units:
   ''<span class="index" title="length unit::rounddown()">rounddown()</span>''
   and ''<span class="index" title="length unit::rounddown()">roundup()</span>''
-  </h4>
+  </h3>
 
   <p>The 'width' and 'height' properties
     accept ''rounddown(<em>length</em>)''
@@ -610,41 +648,35 @@
 <!-- --></code></pre>
   </div>
 
-<h4>Rounding Lengths to Multiple of Units: the 'layout-grid-measure' property</h4>
-
-  <table class=propdef>
-    <tr>
-      <th>Name:
-      <td><dfn>layout-grid-measure</dfn>
-    <tr>
-      <th>Value:
-      <td>none
-        | auto
-        | &lt;length&gt;
-        || up | down
-    <tr>
-      <th>Initial:
-      <td>none
-    <tr>
-      <th>Applies to:
-      <td>block containers
-    <tr>
-      <th>Inherited:
-      <td>no
-    <tr>
-      <th>Percentages:
-      <td>N/A
-    <tr>
-      <th>Media:
-      <td>visual
-    <tr>
-      <th>Computed&nbsp;value:
-      <td>specified value
-  </table>
-
 <h2 id="conformance">
 Conformance</h2>
 
+<h3 id="conventions">Document Conventions</h3>
+
+  <p>Conformance requirements are expressed with a combination of
+  descriptive assertions and RFC 2119 terminology. The key words “MUST”,
+  “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
+  “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
+  document are to be interpreted as described in RFC 2119.
+  However, for readability, these words do not appear in all uppercase
+  letters in this specification.
+  
+  <p>All of the text of this specification is normative except sections
+  explicitly marked as non-normative, examples, and notes. [[!RFC2119]]</p>
+  
+  <p>Examples in this specification are introduced with the words “for example”
+  or are set apart from the normative text with <code>class="example"</code>,
+  like this:
+  
+  <div class="example">
+    <p>This is an example of an informative example.</p>
+  </div>
+  
+  <p>Informative notes begin with the word “Note” and are set apart from the
+  normative text with <code>class="note"</code>, like this:
+  
+  <p class="note">Note, this is an informative note.</p>
+
 <h3 id="conformance-classes">
 Conformance Classes</h3>
 

Received on Thursday, 19 January 2012 02:28:14 UTC