Browse files

[act] (0) Make <a> elements not define paragraphs, allowing them to s…

…traddle paragraphs.

git-svn-id: http://svn.whatwg.org/webapps@1965 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information...
1 parent df6ff47 commit 6ec11de502da951cd485ffa321de3894adf524ee @Hixie Hixie committed Jul 30, 2008
Showing with 97 additions and 25 deletions.
  1. +43 −9 index
  2. +54 −16 source
View
52 index
@@ -8369,23 +8369,27 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
<p>Paragraphs in <a href="#flow-content0">flow content</a> are defined
relative to what the document looks like without the <code><a
- href="#ins">ins</a></code> and <code><a href="#del">del</a></code>
- elements complicating matters. Let <var title="">view</var> be a view of
- the DOM that replaces all <code><a href="#ins">ins</a></code> and <code><a
- href="#del">del</a></code> elements in the document with their contents.
- Then, in <var title="">view</var>, for each run of <a
+ href="#a">a</a></code>, <code><a href="#ins">ins</a></code> and <code><a
+ href="#del">del</a></code> elements complicating matters, since those
+ elements, with their hybrid content models, can straddle paragraph
+ boundaries.
+
+ <p>Let <var title="">view</var> be a view of the DOM that replaces all
+ <code><a href="#a">a</a></code>, <code><a href="#ins">ins</a></code> and
+ <code><a href="#del">del</a></code> elements in the document with their
+ contents. Then, in <var title="">view</var>, for each run of <a
href="#phrasing0">phrasing content</a> uninterrupted by other types of
content, in an element that accepts content other than <a
href="#phrasing0">phrasing content</a>, let <var title="">first</var> be
the first node of the run, and let <var title="">last</var> be the last
node of the run. For each run, a paragraph exists in the original DOM from
immediately before <var title="">first</var> to immediately after <var
title="">last</var>. (Paragraphs can thus span across <code><a
- href="#ins">ins</a></code> and <code><a href="#del">del</a></code>
- elements.)
+ href="#a">a</a></code>, <code><a href="#ins">ins</a></code> and <code><a
+ href="#del">del</a></code> elements.)
- <p>A <a href="#paragraph">paragraph</a> is also formed by <code><a
- href="#p">p</a></code> elements.
+ <p>A <a href="#paragraph">paragraph</a> is also formed explicitly by
+ <code><a href="#p">p</a></code> elements.
<p class=note>The <code><a href="#p">p</a></code> element can be used to
wrap individual paragraphs when there would otherwise not be any content
@@ -8420,6 +8424,36 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
&lt;/section></pre>
</div>
+ <div class=example>
+ <p>In the following example, the link spans half of the first paragraph,
+ all of the header separating the two paragraphs, and half of the second
+ paragraph.</p>
+
+ <pre>&lt;aside>
+ Welcome!
+ &lt;a href="about.html">
+ This is home of...
+ &lt;h1>The Falcons!&lt;/h1>
+ The Lockheed Martin multirole jet fighter aircraft!
+ &lt;/a>
+ This page discusses the F-16 Fighting Falcon's innermost secrets.
+&lt;/aside></pre>
+
+ <p>Here is another way of marking this up, this time showing the
+ paragraphs explicitly, and splitting the one link element into three:</p>
+
+ <pre>&lt;aside>
+ &lt;p>Welcome! &lt;a href="about.html">This is home of...&lt;/a>&lt;/p>
+ &lt;h1>&lt;a href="about.html">The Falcons!&lt;/a>&lt;/h1>
+ &lt;p>&lt;a href="about.html">The Lockheed Martin multirole jet
+ fighter aircraft!&lt;/a> This page discusses the F-16 Fighting
+ Falcon's innermost secrets.&lt;/p>
+&lt;/aside></pre>
+ </div>
+
+ <p class=note>Generally, having elements straddle paragraph boundaries is
+ best avoided. Maintaining such markup can be difficult.
+
<h3 id=apis-in><span class=secno>3.6 </span>APIs in HTML documents</h3>
<p>For <a href="#html-">HTML documents</a>, and for <a
View
70 source
@@ -6375,22 +6375,26 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
stanza in a poem.</p>
<p>Paragraphs in <span>flow content</span> are defined relative to
- what the document looks like without the <code>ins</code> and
- <code>del</code> elements complicating matters. Let <var
- title="">view</var> be a view of the DOM that replaces all
- <code>ins</code> and <code>del</code> elements in the document with
- their contents. Then, in <var title="">view</var>, for each run of
- <span>phrasing content</span> uninterrupted by other types of
- content, in an element that accepts content other than
- <span>phrasing content</span>, let <var title="">first</var> be the
- first node of the run, and let <var title="">last</var> be the last
- node of the run. For each run, a paragraph exists in the original
- DOM from immediately before <var title="">first</var> to immediately
- after <var title="">last</var>. (Paragraphs can thus span across
- <code>ins</code> and <code>del</code> elements.)</p>
-
- <p>A <span>paragraph</span> is also formed by <code>p</code>
- elements.</p>
+ what the document looks like without the <code>a</code>,
+ <code>ins</code> and <code>del</code> elements complicating matters,
+ since those elements, with their hybrid content models, can straddle
+ paragraph boundaries.</p>
+
+ <p>Let <var title="">view</var> be a view of the DOM that replaces
+ all <code>a</code>, <code>ins</code> and <code>del</code> elements
+ in the document with their contents. Then, in <var
+ title="">view</var>, for each run of <span>phrasing content</span>
+ uninterrupted by other types of content, in an element that accepts
+ content other than <span>phrasing content</span>, let <var
+ title="">first</var> be the first node of the run, and let <var
+ title="">last</var> be the last node of the run. For each run, a
+ paragraph exists in the original DOM from immediately before <var
+ title="">first</var> to immediately after <var
+ title="">last</var>. (Paragraphs can thus span across
+ <code>a</code>, <code>ins</code> and <code>del</code> elements.)</p>
+
+ <p>A <span>paragraph</span> is also formed explicitly by
+ <code>p</code> elements.</p>
<p class="note">The <code>p</code> element can be used to wrap
individual paragraphs when there would otherwise not be any content
@@ -6427,6 +6431,40 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
</div>
+ <div class="example">
+
+ <p>In the following example, the link spans half of the first
+ paragraph, all of the header separating the two paragraphs, and
+ half of the second paragraph.</p>
+
+ <pre>&lt;aside>
+ Welcome!
+ &lt;a href="about.html">
+ This is home of...
+ &lt;h1>The Falcons!&lt;/h1>
+ The Lockheed Martin multirole jet fighter aircraft!
+ &lt;/a>
+ This page discusses the F-16 Fighting Falcon's innermost secrets.
+&lt;/aside></pre>
+
+ <p>Here is another way of marking this up, this time showing the
+ paragraphs explicitly, and splitting the one link element into
+ three:</p>
+
+ <pre>&lt;aside>
+ &lt;p>Welcome! &lt;a href="about.html">This is home of...&lt;/a>&lt;/p>
+ &lt;h1>&lt;a href="about.html">The Falcons!&lt;/a>&lt;/h1>
+ &lt;p>&lt;a href="about.html">The Lockheed Martin multirole jet
+ fighter aircraft!&lt;/a> This page discusses the F-16 Fighting
+ Falcon's innermost secrets.&lt;/p>
+&lt;/aside></pre>
+
+ </div>
+
+ <p class="note">Generally, having elements straddle paragraph
+ boundaries is best avoided. Maintaining such markup can be
+ difficult.</p>
+
<h3>APIs in HTML documents</h3>

0 comments on commit 6ec11de

Please sign in to comment.