-
Notifications
You must be signed in to change notification settings - Fork 791
Expand file tree
/
Copy pathchanges.src
More file actions
1744 lines (1325 loc) · 64.4 KB
/
changes.src
File metadata and controls
1744 lines (1325 loc) · 64.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en">
<!-- $Id: changes.src,v 2.22 2002-04-22 22:05:21 bbos Exp $ -->
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>Appendix B: Changes</TITLE>
</HEAD>
<BODY>
<H1 align="center">Changes</H1>
<P><em>This appendix is informative, not normative.</em></P>
<H2>Changes from CSS1</H2>
<P>CSS2 builds on CSS1 and all valid CSS1 style sheets are valid CSS2
style sheets. The changes between the CSS1 specification (see
[[CSS1]]) and this specification fall into three groups: new
functionality, updated descriptions of CSS1 functionality, and changes
to CSS1.
<H3>New functionality</H3>
<P>In addition to the functionality of CSS1, CSS2 supports:</p>
<UL>
<LI>The concept of <A HREF="media.html">media types</A>.
<LI>The <a href="cascade.html#value-def-inherit">'inherit'</a>
value for all properties.
<LI><A HREF="page.html">Paged media</A>
<LI><A HREF="aural.html">Aural style sheets</A>
<LI>Several internationalization features, including <a
href="generate.html#lists">list numbering styles</a>, support for <a
href="visuren.html#direction">bidirectional text</a>, and support for
language-sensitive <a href="generate.html#quotes">quotation
marks</a>.
<LI><A HREF="fonts.html#font-selection">An extended font selection</A>
mechanism, including intelligent matching, synthesis, and downloadable
fonts. Also, the concept of system fonts has been is introduced, and a
new property, <span
class="propinst-font-size-adjust">'font-size-adjust'</span>, has been added.
<LI><A HREF="tables.html">Tables</A>, including new values on <span
class="propinst-display">'display'</span> and <span
class="propinst-vertical-align">'vertical-align'</span>.
<LI><A HREF="visuren.html#relative-positioning">Relative</A> and <A
HREF="visuren.html#absolute-positioning">absolute positioning</A>,
including <A HREF="visuren.html#fixed-positioning">fixed
positioning</A>.
<LI>New box types (along with block and inline): <a
href="visuren.html#compact">compact</a> and <a href="visuren.html#run-in">
run-in</a>.
<LI>The ability to control content <a
href="visufx.html#overflow">overflow</a>, <a
href="visufx.html#clipping">clipping</a>, and <a
href="visufx.html#visibility">visibility</a> in the visual formatting
model.
<LI>The ability to specify minimum and maximum <a
href="visudet.html#min-max-widths">widths</a> and <a
href="visudet.html#min-max-heights">heights</a> in the visual
formatting model.
<LI>An extended <A HREF="selector.html">selector</A> mechanism,
including child selectors, adjacent selectors, and attribute selectors.
<LI><A HREF="generate.html#generated-text">Generated content</a>,
<a href="generate.html#counters">counters and automatic numbering</A>, and
<a href="generate.html#markers">markers</a>.
<LI>Text shadows, through the new <span
class="propinst-text-shadow">'text-shadow'</span> property.
<LI>Several new <A
HREF="selector.html#pseudo-classes">pseudo-classes</A>, :first-child, :hover,
:focus, :lang.
<LI>System <A HREF="ui.html#system-colors">colors</A> and
<A href="ui.html#system-fonts">fonts</a>.
<LI><A href="ui.html#cursor-props">Cursors</a>.
<LI><A href="ui.html#dynamic-outlines">Dynamic outlines</a>.
</UL>
<H3>Updated descriptions</H3>
<P>The CSS1 specification was short and concise. This specification is
much more voluminous and more readable. Much of the additional content
describes new functionality, but the description of CSS1 features has
also been extended. Except in a few cases described below, the
rewritten descriptions do not indicate a change in syntax nor
semantics.
<H3><a name="changes-from-css1">Semantic changes from CSS1</a></H3>
<P>While all CSS1 style sheets are valid CSS2 style sheets, there are
a few cases where the CSS1 style sheet will have a different meaning
when interpreted as a CSS2 style sheet. Most changes are due to
implementation experience feeding back into the specification, but
there are also some error corrections.
<UL>
<LI>The meaning of "!important" has been changed. In CSS1,
"!important" in an author's style sheet took precedence over
one in a user style sheet. This has been reversed in CSS2.
<LI>In CSS2 <A HREF="syndata.html#color-units">color values</A> are clipped
with regard to the device gamut, not with regard to the sRGB gamut as
in CSS1.
<LI>CSS1 simply said that 'margin-right' was ignored if the both
'margin-left' and 'width' were set. In CSS2 the choice between
relaxing 'margin-right' or 'margin-left' depends on the writing direction.
<LI>In CSS1, several properties (e.g., 'padding') had values referring
to the width of the parent element. This was an error; the value
should always refer to the width of a block-level element and this
specification reflects this by introducing the term "containing block".
<LI>The initial value of 'display' is 'inline' in CSS2, not 'block' as
in CSS1.
<LI>In CSS1 'background-position' was relative to the content edge, in
CSS2 it is relative to the padding edge.
<LI>In CSS1, the 'clear' property applied to all elements. This was an
error, and the property only applies to block-level elements in CSS2.
<LI>In CSS1, <span class="index-inst"
title="pseudo-classes:::link|:link|link
(pseudo-class)">':link'</span>, <span class="index-inst"
title="pseudo-classes:::visited|:visited|visited
(pseudo-class)">':visited'</span> and <span class="index-inst"
title="pseudo-classes:::active|:active|active
(pseudo-class)">':active'</span> were mutually exclusive; in CSS2, <a
href="selector.html#dynamic-pseudo-classes">':active'</a> can occur
together with <a href="selector.html#link-pseudo-classes">':link' or
':visited'</a>.
<LI>The suggested scaling factor between adjacent <span
class="propinst-font-size">'font-size'</span> indexes in the table of font
sizes has been reduced from 1.5 to 1.2.
<LI>The computed value, not the actual value, of <span
class="propinst-font-size">'font-size'</span> is inherited.
<LI>The CSS1 description of 'inside' (for <span
class="propinst-list-style-position">'list-style-position'</span>)
allowed the interpretation that the left margin of the text was
affected, rather than the position of the bullet. In CSS2 that
interpretation is ruled out.
<li>Please also consult the <em>normative</em> section on the <a
href="grammar.html#tokenizer-diffs">differences between the CSS1 and
CSS2 tokenizer</a>.
</UL>
<H2>Changes from CSS2</H2>
<P>CSS2.1 is an updated version of CSS2. The changes between the CSS2
specification (see [[CSS2]]) and this specification fall into four
groups: known errors, typographical errors, clarifications, and
changes.</P>
<h3><a name="known-errors">Known Errors</a></h3>
<h4 id="x1">Shorthand properties</h4>
<p>Shorthand properties take a list of subproperty values <em>or</em>
the value 'inherit'. One cannot mix 'inherit' with other subproperty
values as it would not be possible to specify the subproperty to which
'inherit' applied. The definitions of a number of shorthand properties
do not enforce this rule: 'border-top', 'border-right',
'border-bottom', 'border-left', 'border', 'background', 'font',
'list-style', 'cue', and 'outline'.
<h4 id="x3"><a href="syndata.html#tokenization">Section 4.1.1</a> (and
<a href="grammar.html#q2">D2</a>)</h4>
<ul>
<li>The "nmchar" token should also allow the range "A-Z".
<li>In the rule for "any" (in the core syntax), change "FUNCTION"
to "FUNCTION any* ')'".
</ul>
<p><small class="date">[2001-04-03]</small> The underscore character
("_") should be allowed in identifiers. The definitions of the lexical
macros "nmstart" and "nmchar" should include it and become,
respectively:
<pre>
nmstart [a-zA-Z_]|{nonascii}|{escape}
nmchar [a-zA-Z0-9-_]|{nonascii}|{escape}
</pre>
<h4 id="x4"><a href="syndata.html#q4">4.1.3 Characters and case</a></h4>
<p>In the third bullet, add to point 1.:
<blockquote>
<p>1.with a space (or other whitespace character): "\26 B" ("&B")
</blockquote>
<p>the following text: "In this case, user agents should treat a
"CR/LF" pair (13/10) as a single whitespace character."
<p><small class="date">[2001-07-30]</small> The underscore should be
allowed in identifiers. Change "In CSS2, identifiers [...] can contain
only the characters [A-Za-z0-9] and ISO 10646 characters 161 and
higher, plus the hyphen (-)" to:
<blockquote><p>In CSS2, identifiers [...] contain only the characters
[A-Za-z0-9] and ISO 10646 characters 161 and higher, plus the hyphen
(-) and the underscore (_)</p></blockquote>
<h4 id="x5"><a href="syndata.html#values">Section 4.3 (Double sign problem)</a></h4>
<p>Several values described in subsections of this section
incorrectly allow two "+" or "-" signs at their beginnings.
<a href="syndata.html#length-units">Lengths</a>, for instance,
are described as follows:</p>
<blockquote>
<p>The format of a length value (denoted by <length> in this
specification) is an optional sign character ('+' or '-', with '+'
being the default) immediately followed by a <number> (with or without a decimal point)
immediately followed by a unit identifier (e.g., px, deg, etc.).
</blockquote>
<p>However, since <number> already allows a "+" or "-"
sign, the above definition means two signs may appear. The following
value types allow two signs but are meant to allow one
initial sign only:</p>
<ul>
<li><a href="syndata.html#length-units">Lengths</a>
<li><a href="syndata.html#percentage-units">Percentages</a>
<li><a href="syndata.html#angle-units">Angles</a>
</ul>
<h4 id="s-4-3-2"><a href="syndata.html#length-units">Section 4.3.2
Lengths</a></h4>
<p><small class="date">[2001-08-28]</small> The suggested reference
pixel is based on a <ins>96 dpi</ins> device, not 90 dpi.
The visual angle is thus about <ins>0.0213 degrees</ins> instead of
0.0227, and a pixel at arm's length is about <ins>0.26 mm</ins>
instead of 0.28
<h4 id="x6"><a href="syndata.html#color-units">Section 4.3.6</a></h4>
<p>Delete the comments about range
restriction after the following examples:
<pre>
EM { color: rgb(255,0,0) }
EM { color: rgb(100%, 0%, 0%) }
</pre>
<h4 id="x7"><a href="selector.html#q2">5.10 Pseudo-elements and pseudo-classes</a></h4>
<p>In the second bullet, the following sentence is incomplete: "The
exception is ':first-child', which can be deduced from the document
tree." The ':lang()' pseudo-class can be deduced
from the document in some cases.
<h4 id="x8"><a href="box.html#mpb-examples">8.2 Example of margins, padding, and borders</a></h4>
<p>The colors in the example HTML do not match the colors in the
image.
<h4 id="s-8-5-2"><a href="box.html#border-color-properties">Section
8.5.2 Border color: 'border-top-color', 'border-right-color',
'border-bottom-color', 'border-left-color', and
'border-color'</a></h4>
<p><small class="date">[2001-06-25]</small> The value 'transparent' is
also allowed on 'border-top-color', 'border-right-color', etc. Change
the line "Value: <color> | inherit" to
<blockquote><p>Value: <color> | transparent | inherit</blockquote>
<h4 id="x2"><a href="box.html#padding-properties">Section 8.4 Padding properties</a></h4>
<p>The five properties related to padding ('padding', 'padding-top',
'padding-right', 'padding-bottom', and 'padding-left') should say that
they don't apply to table rows, row groups, header groups, footer
groups, columns, and column groups.
<h4 id="x9"><a href="box.html#border-style-properties">8.5.3 Border
style</a></h4>
<p>Change the sentence "The color of borders drawn for values of
'groove', 'ridge', 'inset', and 'outset' depends on the element's
'color' property" to
<blockquote><p>The color of borders drawn for values of 'groove',
'ridge', 'inset', and 'outset' should be based on the element's
'border-color' property, but UAs may choose their own algorithm to
calculate the actual colors used. For instance, if the 'border-color'
has the value 'silver', then a UA could use a gradient of colors from
white to dark gray to indicate a sloping border.</blockquote>
<h4 id="s-8-5-4"><a
href="box.html#border-shorthand-properties">Section 8.5.4 Border
shorthand properties: 'border-top', 'border-bottom', 'border-right',
'border-left', and 'border'</a></h4>
<p>Change <'border-top-width'> to <border-width> as the first
value option for 'border-top', 'border-right', 'border-bottom',
and 'border-left', and change <'border-style'> to <border-style>.
For 'border', change <'border-width'>
to <border-width> and
<'border-style'> to <border-style>.
<p><small class="date">[2001-06-25]</small> The value 'transparent' is
also allowed on 'border-top', 'border-bottom', 'border-right',
'border-left', and 'border'.
<p>Change the two lines "Value: [ <'border-top-width'> ||
<'border-style'> || <color> | inherit" to
<blockquote><p>Value: [ <border-top-width> || <border-style>
|| [<color> | transparent] | inherit</blockquote>
<h4 id="x10"><a href="box.html#value-def-border-width">8.5.4 Border shorthand properties: 'border-top', 'border-bottom', 'border-right', 'border-left', and
'border'</a></h4>
<p>Change <'border-top-width'> to <border-width> as the first
value option for 'border-top', 'border-right', 'border-bottom',
and 'border-left', and change <'border-style'> to <border-style>.
For 'border', change <'border-width'>
to <border-width> and
<'border-style'> to <border-style>.
<h4 id="x11"><a href="visuren.html#choose-position">Section 9.3.1</a></h4>
<p>The definition of the value 'static' should
say that the properties 'top', 'right', 'bottom', and 'left'
do not apply.
<h4 id="x12"><a href="visuren.html#position-props">Section 9.3.2</a></h4>
<p>The properties 'top', 'right', 'bottom', and 'left', incorrectly
refer to offsets with respect to a box's content edge. The proper edge
is the margin edge. Thus, for 'top', the description should read,
"This property specifies how far a box's top margin edge is offset
below the top edge of the box's containing block."
<h4 id="x13"><a href="visuren.html#relative-positioning">Section 9.4.3</a></h4>
<p>In the first sentence, add to the end of
"Once a box has been laid out according to the normal flow"
the words "or floated,".
<h3 id="s-9-7"><a href="visuren.html#q24">Section
9.7 Relationships between 'display', 'position', and 'float'</a></h3>
<p>If an element floats, the
'display' property is set to a block-level value, but not necessarily
'block'. In bullet 3, change "Otherwise, if 'float' has a value other
than 'none', 'display' is set to 'block' and the box is floated" to:
<blockquote><p>
Otherwise, if 'float' has a value other than 'none', the box is
floated and 'display' is set according to this table:
<table>
<tr><th>Specified value <th>Computed value
<tr><td>inline-table <td>table
<tr><td>inline, run-in, compact, table-row-group, table-column,
table-column-group, table-header-group, table-footer-group, table-row,
table-cell, table-caption <td>block
<tr><td>others <td>same as specified
</table>
</blockquote>
<h4 id="x14"><a href="visudet.html#q5">Section 10.3.2
Inline, replaced elements</a> (and 10.3.4, 10.3.6, and 10.3.8)</h4>
<p>Change:</p>
<blockquote>
<p> A specified value of 'auto' for 'width' gives the element's intrinsic
width as the computed value.
</blockquote>
<p>to:</p>
<blockquote>
<p> If 'width' has a specified value of 'auto' and 'height' also has a
specified value of 'auto', the element's intrinsic width is the
computed value of 'width'. If 'width' has a specified value of
'auto' and 'height' has some other specified value, then the computed
value of 'width' is
(intrinsic width) * ( (computed height) / (intrinsic height) ).
</blockquote>
<h4 id="x15"><a href="visudet.html#q6">Section 10.3.3</a></h4>
<p>In the last sentence of the paragraph following the equation --
"If the value of 'direction' is 'ltr', this happens to
'margin-left' instead." -- substitute 'rtl' for 'ltr'.
<h4 id="x16"><a href="visudet.html#q16">Section 10.6.2
Inline, replaced elements ...</a> (and 10.6.5)</h4>
<p>Change:</p>
<blockquote>
<p> If 'height' is 'auto', the computed value
is the intrinsic height.
</blockquote>
<p>to:</p>
<blockquote>
<p> If 'height' has a specified value of 'auto' and 'width' also has a
specified value of 'auto', the element's intrinsic height is the
computed value of 'height'. If 'height' has a specified value of
'auto' and 'width' has some other specified value, then the computed
value of 'height' is
(intrinsic height) * ( (computed width) / (intrinsic width) ).
</blockquote>
<h4 id="x17"><a href="visudet.html#q17">Section 10.6.3</a></h4>
<p>The height calculation for block-level, non-replaced elements in
normal flow, and floating, non-replaced elements is not quite correct.
The height calculation should read as follows:</p>
<p>If <span class="propinst-top">'top'</span>, <span
class="propinst-bottom">'bottom'</span>, <span
class="propinst-margin-top">'margin-top'</span>, or <span
class="propinst-margin-bottom">'margin-bottom'</span> are 'auto',
their computed value is 0. If <span
class="propinst-height">'height'</span> is 'auto', the height depends
on whether the element has any block-level children and whether it has
padding or borders.
<p>If it only has inline-level children, the height is the distance
between the top of the topmost line box and the bottom of the
bottommost line box.
<p>If it has block-level children, the height is the distance between
the top border-edge of the topmost block-level child box and the
bottom border-edge of the bottommost block-level child box. However,
if the element has a non-zero top padding and/or top border, then the
content starts at the top <em>margin</em> edge of the topmost child.
Similarly, if the element has a non-zero bottom padding and/or bottom
border, then the content ends at the bottom <em>margin</em> edge of
the bottommost child.
<p>Only children in the normal flow are taken into account (i.e.,
floating boxes and absolutely positioned boxes are ignored, and
relatively positioned boxes are considered without their offset). Note
that the child box may be an <a
href="visuren.html#anonymous-block-level">anonymous box.</a>
<h4 id="x18"><a href="visufx.html#overflow">Section 11.1.1</a></h4>
<p>The example of a DIV element containing a BLOCKQUOTE
containing another DIV is not rendered correctly. The first
rule:
<pre>
DIV { width : 100px; height: 100px;
border: thin solid red;
}
</pre>
<p>Applies to both the external and internal DIV, so, for
example, the internal DIV box should be rendered
with a red border. The intention of the authors was
that the first style rule only apply to the external DIV.
This could be accomplished by making it more specific by
adding a "class" or "id" value to the markup and changing
the selectors accordingly.
<h4 id="s-11-2"><a href="visufx.html#propdef-visibility">11.2
Visibility: the 'visibility' property</a></h4>
<p><small class="date">[2001-06-25]</small> Change "initial" and
"inherited" to:
<blockquote><p>
<em>Initial:</em> visible<br>
<em>Inherited:</em> yes
</blockquote>
<p>This has the same effect as the original definition, but removes
the undefined state of the root element (which was a problem for DOM
implementations).
<h4 id="x19"><a href="generate.html#content">12.2 The 'content'
property</a></h4>
<p>The 'content' property applies to 'display : marker' elements and
both :before and :after pseudo-elements.
<h4 id="x20"><a href="generate.html#lists">12.6.2 Lists</a></h4>
<p>Under the 'list-style' property, the following example:</p>
<pre>
UL > UL { list-style: circle outside } /* Any UL child of a UL */
</pre>
<p>Will never match valid HTML markup (since a UL element
cannot be a child of another UL element; there must be
at least an intervening LI element).
<h4 id="x21"><a href="fonts.html#font-size-props">Section 15.2.4</a></h4>
<p>Under the 'font-size-adjust' property, in the formula given
for <number>, the variables y, a', and c are explained. An
explanation for the variable "a" is missing and should read:</p>
<pre> a = aspect value of first-choice font
</pre> <p>In the sentence beginning "In bicameral scripts..." change
"(font size divided by x-height)" to
"(x-height divided by font size)".
<p><small class="date">[2001-06-25]</small> 'font-size-adjust' should be
applied to the first choice font as well. (This should have no effect
since the value of 'first-size-adjust' typically will be the ex:em
ratio of the first choice font.) This corrects an oversight related to
cases where the property is inherited into children inline elements.
<h4 id="x22"><a href="fonts.html#generic-font-families">Section 15.2.6</a></h4>
<p>'Totum' and 'Kodic' is not a 'serif' but 'sans-serif'. 'pathang' is
not a 'sans-serif' but 'serif'.
<h4 id="x23"><a href="fonts.html#algorithm">Section 15.5</a></h4>
<p>In bullet 2, change "the UA uses the 'font-family' descriptor"
to "the UA uses the 'font-family' property".
<p>In bullet 6, change "steps 3, 4 and 5" to
"steps 2, 3, 4 and 5".
<h4 id="s-16-6"><a href="text.html#propdef-white-space">Section 16.6
Whitespace: the 'white-space' property</a></h4>
<p><small class="date">[2001-08-28]</small> The 'white-space' property
applies to <em>all</em> elements, not just block-level elements.
<h4 id="x24"><a href="tables.html#q2">Section 17.2 The CSS table
model</a></h4>
<p>In the definition of <strong>table-header-group</strong>, change
"footer" to "header" in "Print user agents may repeat footer rows on
each page spanned by a table."
<h4 id="x25"><a href="tables.html#anonymous-boxes">17.2.1 Anonymous table objects </a></h4>
<p>Move the first bullet text to the prose before the list of
generation rules. The rules should then be the following:</p>
<ol>
<li>If the parent P of a 'table-cell' element T is not a 'table-row',
an object corresponding to a 'table-row' will be generated between P
and T. This object will span all consecutive 'table-cell' siblings
(in the document tree) of T.
<li>If the parent P of a 'table-row' element T is not a 'table',
'inline-table', or 'table-row-group' element, an
object corresponding to a 'table' element will be
generated between P and T. This object will span all consecutive siblings
(in the document tree) of T that require a 'table' parent:
'table-row', 'table-row-group', 'table-header-group',
'table-footer-group', 'table-column', 'table-column-group', and 'table-caption'.
<li>If the parent P of a 'table-column' element T is not a 'table',
'inline-table', or 'table-column-group' element, an
object corresponding to a 'table' element will be
generated between P and T. This object will span all consecutive siblings
(in the document tree) of T that require a 'table' parent:
'table-row', 'table-row-group', 'table-header-group',
'table-footer-group', 'table-column', 'table-column-group', and 'table-caption'.
<li>If the parent P of a 'table-row-group' (or 'table-header-group',
'table-footer-group', or 'table-column-group') element T is not a 'table' or 'inline-table', an
object corresponding to a 'table' element will be generated between P
and T. This object will span all consecutive siblings (in the document
tree) of T that require a 'table' parent: 'table-row',
'table-row-group', 'table-header-group', 'table-footer-group',
'table-column', 'table-column-group', and 'table-caption'.
<li>If a child T of a 'table' element (or 'inline-table') P is not a
'table-row-group', 'table-header-group', 'table-footer-group', or
'table-row' element, an object corresponding to a 'table-row' element
will be generated between P and T. This object spans all consecutive
siblings of T that are not 'table-row-group', 'table-header-group',
'table-footer-group', or 'table-row' elements.
<li>If a child T of a 'table-row-group' element (or
'table-header-group' or 'table-footer-group') P is
not a 'table-row' element, an object corresponding to a 'table-row'
element will be generated between P and T. This object spans all
consecutive siblings of T that are not 'table-row' elements.
<li>If a child T of a 'table-row' element P is not a 'table-cell'
element, an object corresponding to a 'table-cell' element will be
generated between P and T. This object spans all consecutive siblings
of T that are not 'table-cell' elements.
</ol>
<h4 id="x26"><a href="tables.html#q7">17.5 Visual layout of table
contents</a></h4>
<p>The following note:</p>
<blockquote>
<p><strong>Note.</strong> Table cells may be relatively and absolutely positioned, but this is not recommended: positioning and floating remove a
box from the flow, affecting table alignment.
</p>
</blockquote>
<p>Should be amended as follows:</p>
<blockquote>
<p><strong>Note.</strong> Table cells may be
positioned, but this is not recommended: absolute and fixed
positioning, as well as floating, remove a box from the flow, affecting
table size.
</p>
</blockquote>
<h4 id="x27"><a href="tables.html#q7">17.5 Visual layout of table
contents</a></h4>
<p>Change:
<blockquote>
<p>Like other elements of the document language, internal table
elements generate rectangular boxes with content, padding, and
borders. They do not have margins, however.
</blockquote>
<p>to:
<blockquote>
<p>Like other elements of the document language, internal table
elements generate rectangular boxes with content and
borders. Cells have padding as well. Internal table elements do not
have margins.
</blockquote>
<h4 id="x28"><a href="tables.html#separated-borders">Section 17.6.1 The
separated borders model</a></h4>
<p>In the image, change "cell-spacing" to "border-spacing".
<h4 id="s-A"><a href="sample.html">Appendix A. A sample style sheet
for HTML 4.0</a></h4>
<p><code>@media speech</code> should be <code>@media aural</code>.
<h4 id="underscore2"><a href="grammar.html#q2">Appendix D.2 Lexical
scanner</a></h4>
<p><small class="date">[2001-04-03]</small> The underscore character
("_") should be allowed in identifiers. The definitions of the lexical
macros "nmstart" and "nmchar" should include it and become,
respectively:
<pre>
nmstart [a-z_]|{nonascii}|{escape}
nmchar [a-z0-9-_]|{nonascii}|{escape}
</pre>
<p>Note that the tokenizer is case-insensitive, so uppercase A-Z is
matched as well.
<p>(Same change in section 4.1.1, see <a href="#underscore">above</a>.)
<h3><a name="minor-errors">Minor Typographical Errors</a></h3>
<h4 id="x29"><a href="intro.html#q1">Section 2.1</a></h4>
<p>For the example with the LINK element, the list
following the example incorrectly refers to the "ref"
attribute. This should be the "href" attribute.
<h4 id="s-2-2a"><a href="intro.html#q2">Section 2.2</a></h4>
<p><small class="date">[2002-01-28]</small> The sentence: "For
example, the headline font size should be larger than then rest of the
text" should read: "For example, the headline font size should be
larger than <ins>the</ins> rest of the text."
<h4 id="x30"><a href="conform.html#q1">Section 3.1</a></h4>
<p>Under the definition of "Child", the phrase
"if an only if" should read "if and only if".
<p>Under the definition of "Sibling", the last sentence should read,
"Element B is a following sibling if it comes after A in the document
tree."
<h4 id="x31"><a href="conform.html#text-css">Section 3.4</a></h4>
<p>The correct RFC number for the registration of the
"text/css" content type is RFC 2318, not RFC 2138.
<h4 id="x32"><a href="selector.html#lang">Section 5.11.4</a></h4>
<p>In "XML uses an attribute called XML:LANG", the
XML attribute should be in lowercase, i.e., xml:lang.
<h4 id="x33"><a href="selector.html#first-line-pseudo">Section 5.12.1</a></h4>
<p>The rendering of the first example is:</p>
<pre>
THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
will be broken into several lines.
</pre>
<p>while the fictional tag sequence is given as:</p>
<pre>
<P><b><P:first-line></b> This is a somewhat long HTML
paragraph that will <b></P:first-line></b> ...
</pre>
<p>The word "will" should follow the fictional tag sequence
for :first-line.
<h4 id="x34"><a href="cascade.html#cascading-order">Section 6.4</a></h4>
<p>The last sentence in the penultimate paragraph should
begin "All user and author rules..." instead of "All rules
user and author rules...".
<h4 id="x35"><a href="box.html#border-color-properties">Section 8.5.2</a></h4>
<ul>
<li>
The individual border-X-color property definitions may
also take the value 'transparent'.
<li>The 'border-color' shorthand property should read:
<pre>[ <color> | transparent ]{1,4} | inherit</pre>
</ul>
<h4 id="x36"><a href="box.html#border-style-properties">Section 8.5.3
Border style</a></h4>
<p>Under the definition of "ridge", change "grove" to "groove".
<h4 id="x37"><a href="visuren.html#q5">Section 9.2.1</a></h4>
<p>In the example after the diagram, the
HTML fragment "<P>This is the content of P.</>"
should end instead with the end tag "</P>".
<h4 id="x38"><a href="visuren.html#anonymous">Section 9.2.2, Anonymous inline boxes</a></h4>
<p>In the (third paragraph) sentence "In the example, the color of the
anonymous initial boxes is inherited from the P, but the background is transparent", substitute the word "inline" for "initial".
<h4 id="x39"><a href="visuren.html#relative-positioning">Section 9.4.3</a></h4>
<p>In the second paragraph, "a new a new" should only read "a new".
<h4 id="x40"><a href="visuren.html#q24">Section 9.7 Relationships between 'display', 'position', and 'float'</a></h4>
<ul>
<li>In bullet two, change "Otherwise, 'position' ..." to
"Otherwise, if 'position' ...".
<li>In bullet four, change "remaining display properties"
to "remaining display property values".
</ul>
<h4 id="x41"><a href="visudet.html#q15">Section 10.6.1</a></h4>
<p>The <span class="propinst-height">'height'</span> property doesn't
apply. The height of the content area is equal to the actual font size
of the element. The vertical padding, border and margin of an inline,
non-replaced box start at the top and bottom of the font, not the
<span class="propinst-line-height">'line-height'</span>. But only the
<span class="propinst-line-height">'line-height'</span> is used to
compute the height of the line box.
<p>If more than one font size is used (this could happen when glyphs
are found in different fonts), the height of the content area is not
defined by this specification. However, we recommend that the largest
font size determine the content height.
<h4 id="x42"><a href="visufx.html#overflow">Section 11.1.1</a></h4>
<p>In the description of the 'scroll' value, add "a"
to "if the user agent uses [a] scrolling mechanism".</p>
<h4 id="x43"><a href="generate.html#content">Section 12.2</a></h4>
<p>In the definition of <counter>, the sentence "The latter
function also has two forms: 'counter(name, string)' or 'counter(name,
string, style)'" should read "two forms: 'counters(name, string)' or
'counters(name, string, style)'"
<h4 id="x44"><a href="generate.html#markers">Section 12.6.1</a></h4>
<p>Change the third paragraph as follows:
<blockquote>
<p>For the :before pseudo-element, the baseline in the marker box will
be vertically aligned with the baseline in the first line box of the
principal box. If the principal box contains no line boxes, or if
there is a block box within the principal box that is above the first
line box, the top outer edge of the marker box will be aligned with
the top outer edge of the principal box.
<p>For the :after pseudo-element, the baseline in the marker box will
be vertically aligned with the baseline in the last line box in the
principal box. If the principal box contains no line boxes, or if
there is a block box within the principal box that is below the last
line box, the bottom outer edge of the marker box will be aligned with
the bottom outer edge of the principal box.
</blockquote>
<p><small class="date">[2001-07-19]</small> In the last example above
'marker-offset', the line <code>"<TITLE>Markers to create numbered
notes4>/TITLE>"</code> should read <code>"<TITLE>Markers to create
numbered notes</TITLE>"</code> instead.
<h4 id="x45"><a href="page.html#page-box">Section 13.2</a></h4>
<p>In the following code, put a ":" after "size".
<pre>
@page { size 8.5in 11in; margin: 2cm }
</pre>
<h4 id="x46"><a href="colors.html#gamma-correction">Section 14.3</a></h4>
<p>The first sentence has one too many "the"s in
"please consult the the Gamma Tutorial...".
<h4 id="x47"><a href="aural.html#propdef-voice-family">Section 19.8</a></h4>
<p>In the following sentence from the
definition of the 'voice-family' property:
<blockquote>
<p>If quoting is omitted, any whitespace characters before and after the
font name are ignored and any sequence of
whitespace characters inside the font name is converted to a single space.
</blockquote>
<p>all occurrences of the word "font" should be replaced by "voice family".
<h4 id="x48"><a href="grammar.html#q2">Section D.2 Lexical scanner </a></h4>
<p>Remove "RGB S*" from the rule "term" since rgb() is covered by
the "function" production, which matches counter(), atrr(), format(),
and others as well.
<h4 id="x49"><a href="grammar.html#tokenizer-diffs">Section D.3 Comparison of tokenization in CSS2 and CSS1 </a></h4>
<p>In the last bullet, change <code>.\55ft</code> to
<code>.\35 5ft</code>.
<h4 id="x50"><a href="sample.html">Appendix A: Sample Style Sheet for HTML 4.0</a></h4>
<p>The value of the 'line-height' property set for the BODY
element should be "1.12em".
<p>The OBJECT and APPLET elements should have 'display: inline'.
<h4 id="x51"><a href="propidx">Appendix F. Property index</a></h4>
<p>The initial value for 'background' is missing. The "XX" should be
"see individual properties."
<h4 id="x52"><a href="indexlist.html">Appendix H: Index</a></h4>
<p>The index includes anchors that differ only by
base ("A" and "a") and this is not legal HTML. From
<a href="/TR/html4/struct/links.html#h-12.2.1">HTML 4.01, section 12.2.1</a>:
<blockquote>
<p>Anchor names that differ only in case may not
appear in the same document.
</blockquote>
<p>Browser behavior may differ because of this.
<h3><a name="clarifications">Clarifications</a></h3>
<h4 id="s-2-2"><a
href="http://www.w3.org/TR/REC-CSS2/intro.html#q2">2.2 A brief CSS2
tutorial for XML</a></h4>
<p>The specification for the <a
href="/1999/06/REC-xml-stylesheet-19990629/">XML style sheet PI</a>
was written after CSS2 was finalized. The first line of the full XML
example should not be <code><?XML:stylesheet type="text/css"
href="bach.css"?></code>, but
<pre><?xml-stylesheet type="text/css" href="bach.css"?></pre>
<h4 id="x54"><a href="selector.html#syndata.html#tokenization">Section 4.1.1</a></h4>
<p>DELIM should not include single or double quote. Refer also
to section 4.1.6 on strings, which must have matching single or
double quotes around them.
<h4 id="x55"><a href="selector.html#descendant-selectors">Section 5.5</a></h4>
<p>Near the end of the section, the text 'Note the whitespace on
either side of the "*"' may be misleading. The note is not meant to
imply that whitespace is required on both sides of the "*" (since the
grammar does not require it in this case) but that one may use
whitespace in this case.
<h4 id="x56"><a href="selector.html#id-selectors">Section 5.9 ID selectors</a></h4>
<p>The word "precedence" in the last but one paragraph should be
"specificity."
<h4 id="s-5-12-1"><a href="selector.html#first-line-pseudo">Section
5.12.1 The :first-line pseudo-element</a></h4>
<p><small class="date">[2001-08-27]</small> Add the following
clarifications at the end of the section:
<blockquote><p>In case a certain first line is the first line of some
block-level element <var>A</var> as well as of <var>A</var>'s ancestor
<var>B </var>, the fictional tag sequence is as follows:
<pre><B>...<A>...<B:first-line><A:first-line>This is the first line</A:first-line></B:first-line></pre>
<p>All fictional tags for first-line are inside the smallest enclosing
block -level element and the nesting order of the fictional tags
A:first-line and B-first-line is the same as that of the elements
<var>A</var> and <var>B </var>.
<p>The "first formatted line" of a block level element is the first
line in the element's flow, i.e., ignoring any floats or absolutely
positioned elements. For example, in
<pre>
<div>
<p style="float: left">Floating paragraph...</p>
<p>First line starts here...</p>
</div>
</pre>
<p>he selector 'div:first-line' applies to the first line of the
second p, because the first p is taken out of the flow.
</blockquote>
<h4 id="x57"><a href="cascade.html#value-def-inherit">Section 6.2.1</a></h4>
<p>The 'inherit' value causes the properties value to be
inherited. This applies even to properties for which values
do not otherwise inherit.
<h4 id="x58"><a href="cascade.html#cascade">6.4 The Cascade
</a></h4>
<p>Change "Rules specified in a given style sheet
override rules imported from other style sheets." to
Change "Rules specified in a given style sheet
override rules of the same weight imported from other style sheets."
</p>
<h4 id="x59"><a href="cascade.html#specificity">Section 6.4.3 Calculating a
selector's specificity</a></h4>
<p>Add a note:
<blockquote><p>The specificity is based only on the form of the selector.
In particular, a selector of the form "<code>[id=p33]</code>" is
counted as an attribute selector (a=0, b=1, c=0), even if the
<code>id</code> attribute is defined as an "ID" in the source
document's DTD.
</blockquote>
<h4 id="x60"><a href="box.html#box-dimensions">Section 8.1</a></h4>
<ul>