Skip to content

Commit 6671022

Browse files
committed
move quotes into the escape a string algorithm; reorder a few things
1 parent 760a682 commit 6671022

2 files changed

Lines changed: 175 additions & 181 deletions

File tree

cssom/Overview.html

Lines changed: 88 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -813,10 +813,9 @@ <h3 id=serializing-selectors><span class=secno>5.2. </span>Serializing
813813
<p>If there is an attribute value specified, append "<code>=</code>",
814814
"<code>~=</code>", "<code>|=</code>", "<code>^=</code>",
815815
"<code>$=</code>", or "<code>*=</code>" as appropriate (depending on
816-
the type of attribute selector), followed by '<code>"</code>'
817-
(U+0022), followed by the <a href="#escape-a-string" title="escape a
818-
string">string escaped</a> attribute value, followed by
819-
'<code>"</code>' (U+0022), to <var title="">s</var>.
816+
the type of attribute selector), followed by the <a
817+
href="#escape-a-string" title="escape a string">string escaped</a>
818+
attribute value, to <var title="">s</var>.
820819

821820
<li>
822821
<p>Append "<code>]</code>" (U+005D) to <var title="">s</var>.
@@ -3408,7 +3407,47 @@ <h4 id=serializing-css-values><span class=secno>6.6.2. </span>Serializing
34083407
<p>To <dfn id=serialize-a-css-value>serialize a CSS value</dfn> run these
34093408
steps:
34103409

3411-
<p class=XXX>This needs some work, obviously.
3410+
<p class=XXX>This needs some work, obviously.</p>
3411+
<!--
3412+
<li><p>Where multiple values may appear in any order without changing the
3413+
meaning of the value (typically represented by a double bar <code>||</code>
3414+
in the value syntax), user agents are to use the canonical order as given in
3415+
the syntax (e.g. <code>&lt;border-width> &lt;border-style> &lt;color></code>
3416+
for the <code>border</code> short-hand property).</p></li>
3417+
3418+
<li><p>When repeated values may be omitted without changing the meaning of
3419+
the value (e.g. as in the <code>margin</code> and <code>padding</code>
3420+
properties), then the fewest number of values should be given.</p></li>
3421+
3422+
<li><p>If whitespace may be removed without changing the meaning of the value
3423+
it is to be removed.</p></li>
3424+
3425+
<li><p><code>&lt;specific-voice></code> and <code>&lt;family-name</code>
3426+
values are to be quoted.</p></li>
3427+
3428+
<li><p>Where components of the value may be dropped without changing the
3429+
meaning of the value (for example, initial values in shorthand properties),
3430+
then they should be removed. If this would remove all the values, then the
3431+
first allowed value must be given (For example, for <code>background</code>
3432+
that would be <code>rgba(0, 0, 0, 0)</code> since
3433+
<code>background-color</code> is the first component of the value; for
3434+
<code>border</code> it would be <code>0</code> since the first component of
3435+
that value is <code>border-width</code>).</p></li>
3436+
3437+
<li>
3438+
<p>A single space should be added after each comma that is not part of a
3439+
string, except where that would change the meaning of the value. For
3440+
example:</p>
3441+
3442+
<pre>foo,bar,baz</pre>
3443+
3444+
<p>should become:</p>
3445+
3446+
<pre>foo, bar, baz</pre>
3447+
</li>
3448+
3449+
</ol>
3450+
-->
34123451

34133452
<p>To <dfn id=serialize-a-css-value-component>serialize a CSS value
34143453
component</dfn> depends on the component, as follows:
@@ -3430,6 +3469,39 @@ <h4 id=serializing-css-values><span class=secno>6.6.2. </span>Serializing
34303469

34313470
<dd>
34323471
<p class=XXX>preserve system colors, maybe color keywords...
3472+
</dd>
3473+
<!--
3474+
<dt>It is a system color</dt>
3475+
3476+
<dd>See below (you use the representation given in the specification that
3477+
defines the keyword).</dd>
3478+
3479+
<dt>Alpha component is equal to 1.0</dt>
3480+
3481+
<dd>The color is an uppercase six-digit hexadecimal value, prefixed with a
3482+
<code>#</code> character (U+0023 NUMBER SIGN), with the first two digits
3483+
representing the red component, the next two digits representing the green
3484+
component, and the last two digits representing the blue component, the
3485+
digits being in the range 0-9 A-F (U+0030 to U+0039 and U+0041 to
3486+
U+0046).</dd>
3487+
3488+
<dt>Alpha component is less than 1.0</dt>
3489+
3490+
<dd>The color is in the CSS <code>rgba()</code> functional-notation format:
3491+
the literal string <code>rgba</code> (U+0072 U+0067 U+0062 U+0061) followed
3492+
by a U+0028 LEFT PARENTHESIS, a <span>color component integer</span>
3493+
representing the red component, a <span>color component separator</span>, a
3494+
<span>color component integer</span> for the green component, a <span>color
3495+
component separator</span>, a <span>color component integer</span> for the
3496+
blue component, another <span>color component separator</span> a U+0030
3497+
DIGIT ZERO, a U+002E FULL STOP (representing the decimal point), one or
3498+
more digits in the range 0-9 (U+0030 to U+0039) representing the fractional
3499+
part of the alpha value, and finally a U+0029 RIGHT PARENTHESIS.</dd>
3500+
3501+
<dt>The keyword <code>transparent</code> is used</dt>
3502+
3503+
<dd>The color is <code>rgba(0, 0, 0, 0)</code>.</dd>
3504+
-->
34333505

34343506
<dt>&lt;frequency>
34353507

@@ -3487,9 +3559,8 @@ <h4 id=serializing-css-values><span class=secno>6.6.2. </span>Serializing
34873559
<dt>&lt;string>
34883560

34893561
<dd>
3490-
<p>A literal '<code>"</code>' (U+0022), followed by the <a
3491-
href="#escape-a-string" title="escape a string">escaped</a> string
3492-
value, followed by a literal '<code>"</code>' (U+0022).
3562+
<p>The string <a href="#escape-a-string" title="escape a string">string
3563+
escaped</a>.
34933564

34943565
<dt>&lt;time>
34953566

@@ -3501,7 +3572,7 @@ <h4 id=serializing-css-values><span class=secno>6.6.2. </span>Serializing
35013572

35023573
<dd>
35033574
<p>The <span>absolute URL</span> <a href="#escape-a-url" title="escape a
3504-
URL">escaped</a>.
3575+
URL">URL escaped</a>.
35053576
</dl>
35063577

35073578
<p>To <dfn id=escape-a-character>escape a character</dfn> means to create a
@@ -3549,8 +3620,9 @@ <h4 id=serializing-css-values><span class=secno>6.6.2. </span>Serializing
35493620
</ul>
35503621

35513622
<p>To <dfn id=escape-a-string>escape a string</dfn> means to create a
3552-
string represented by the concatenation of, for each character of the
3553-
given string:
3623+
string represented by '<code>"</code>' (U+0022), followed by the result of
3624+
applying the rules below to each character of the given string, followed
3625+
by '<code>"</code>' (U+0022):
35543626

35553627
<ul>
35563628
<li>If the character is in the range U+0000 to U+001F, the character <a
@@ -3568,86 +3640,9 @@ <h4 id=serializing-css-values><span class=secno>6.6.2. </span>Serializing
35683640
always serialized with '<code>"</code>' (U+0022).
35693641

35703642
<p>To <dfn id=escape-a-url>escape a URL</dfn> means to create a string
3571-
represented by '<code title="">url("</code>', followed by the <a
3572-
href="#escape-a-string" title="escape a string">escaped</a> value of the
3573-
given string, followed by '<code>")</code>'.</p>
3574-
<!--
3575-
<li>
3576-
<p>A <code>&lt;color></code> value is canonicalized as follows:</p>
3577-
3578-
<dl>
3579-
<dt>It is a system color</dt>
3580-
3581-
<dd>See below (you use the representation given in the specification that
3582-
defines the keyword).</dd>
3583-
3584-
<dt>Alpha component is equal to 1.0</dt>
3585-
3586-
<dd>The color is an uppercase six-digit hexadecimal value, prefixed with a
3587-
<code>#</code> character (U+0023 NUMBER SIGN), with the first two digits
3588-
representing the red component, the next two digits representing the green
3589-
component, and the last two digits representing the blue component, the
3590-
digits being in the range 0-9 A-F (U+0030 to U+0039 and U+0041 to
3591-
U+0046).</dd>
3592-
3593-
<dt>Alpha component is less than 1.0</dt>
3594-
3595-
<dd>The color is in the CSS <code>rgba()</code> functional-notation format:
3596-
the literal string <code>rgba</code> (U+0072 U+0067 U+0062 U+0061) followed
3597-
by a U+0028 LEFT PARENTHESIS, a <span>color component integer</span>
3598-
representing the red component, a <span>color component separator</span>, a
3599-
<span>color component integer</span> for the green component, a <span>color
3600-
component separator</span>, a <span>color component integer</span> for the
3601-
blue component, another <span>color component separator</span> a U+0030
3602-
DIGIT ZERO, a U+002E FULL STOP (representing the decimal point), one or
3603-
more digits in the range 0-9 (U+0030 to U+0039) representing the fractional
3604-
part of the alpha value, and finally a U+0029 RIGHT PARENTHESIS.</dd>
3605-
3606-
<dt>The keyword <code>transparent</code> is used</dt>
3607-
3608-
<dd>The color is <code>rgba(0, 0, 0, 0)</code>.</dd>
3609-
</dl>
3610-
</li>
3611-
3612-
<li><p>Where multiple values may appear in any order without changing the
3613-
meaning of the value (typically represented by a double bar <code>||</code>
3614-
in the value syntax), user agents are to use the canonical order as given in
3615-
the syntax (e.g. <code>&lt;border-width> &lt;border-style> &lt;color></code>
3616-
for the <code>border</code> short-hand property).</p></li>
3617-
3618-
<li><p>When repeated values may be omitted without changing the meaning of
3619-
the value (e.g. as in the <code>margin</code> and <code>padding</code>
3620-
properties), then the fewest number of values should be given.</p></li>
3621-
3622-
<li><p>If whitespace may be removed without changing the meaning of the value
3623-
it is to be removed.</p></li>
3624-
3625-
<li><p><code>&lt;specific-voice></code> and <code>&lt;family-name</code>
3626-
values are to be quoted.</p></li>
3627-
3628-
<li><p>Where components of the value may be dropped without changing the
3629-
meaning of the value (for example, initial values in shorthand properties),
3630-
then they should be removed. If this would remove all the values, then the
3631-
first allowed value must be given (For example, for <code>background</code>
3632-
that would be <code>rgba(0, 0, 0, 0)</code> since
3633-
<code>background-color</code> is the first component of the value; for
3634-
<code>border</code> it would be <code>0</code> since the first component of
3635-
that value is <code>border-width</code>).</p></li>
3636-
3637-
<li>
3638-
<p>A single space should be added after each comma that is not part of a
3639-
string, except where that would change the meaning of the value. For
3640-
example:</p>
3641-
3642-
<pre>foo,bar,baz</pre>
3643-
3644-
<p>should become:</p>
3645-
3646-
<pre>foo, bar, baz</pre>
3647-
</li>
3648-
3649-
</ol>
3650-
-->
3643+
represented by "<code title="">url(</code>", followed by the <a
3644+
href="#escape-a-string" title="escape a string">string escaped</a> value
3645+
of the given string, followed by "<code>)</code>".
36513646

36523647
<h5 id=examples0><span class=secno>6.6.2.1. </span>Examples</h5>
36533648

@@ -3719,6 +3714,8 @@ <h5 id=examples0><span class=secno>6.6.2.1. </span>Examples</h5>
37193714

37203715
<td><code>color: #000000</code>
37213716
</table>
3717+
3718+
<p class=XXX>Some of these need to be updated per the new rules.</p>
37223719
</div>
37233720

37243721
<h2 id=dom-access-to-css-declaration-blocks><span class=secno>7. </span>DOM

0 commit comments

Comments
 (0)