forked from w3c/csswg-drafts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchanges.src
More file actions
2250 lines (1552 loc) · 82.6 KB
/
changes.src
File metadata and controls
2250 lines (1552 loc) · 82.6 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.01//EN">
<html lang="en">
<!-- $Id: changes.src,v 2.70 2007-07-10 22:03:20 fantasai Exp $ -->
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>Changes</TITLE>
</HEAD>
<BODY>
<H1>Changes</H1>
<P><em>This appendix is informative, not normative.</em></P>
<P>CSS 2.1 is an updated revision of CSS2. The changes between the
CSS2 specification (see [[CSS2]]) and this specification fall into
five groups: known errors, typographical errors, clarifications,
changes and additions. Typographical errors are not listed here.</P>
<p>This chapter is not a complete list of changes. Minor editorial
changes and most changes to examples are also not listed here.</p>
<h2><a name="new">Additional property values</a></h2>
<h3 id="s-4-3-5"><a href="syndata.html#color-units">Section 4.3.5
Colors</a></h3>
<p>New color value: 'orange'
<h3 id="s-9-2-4"><a href="visuren.html#propdef-display">Section 9.2.4
The 'display' property</a></h3>
<p>New 'display' value: 'inline-block'
<h3 id="s-12-2a"><a href="generate.html#content">Section 12.2 The
'content' property</a></h3>
<p>New 'content' values 'none' and 'normal'. (The values 'none' and
'normal' are equivalent in CSS 2.1, but may have different
functions in CSS3.)
<h3 id="s-18-1"><a href="ui.html#propdef-cursor">Section 18.1 Cursors:
the 'cursor' property</a></h3>
<p>New 'cursor' value: 'progress'
<h3 id="s-16-6"><a href="text.html#propdef-white-space">Section 16.6
Whitespace: the 'white-space' property</a></h3>
<p>New 'white-space' values: 'pre-wrap' and 'pre-line'
<h2><a name="changes">Changes</a></h2>
<h3 id="c1.1"><a href="about.html#q1">Section 1.1 CSS 2.1 vs CSS 2</a></h3>
<p>This new section is added to explain the motivation for CSS2.1
and its relation to CSS2.</p>
<h3 id="c1.2"><a href="about.html#q2">Section 1.2 Reading the specification</a></h3>
<p>This section (formerly Section 1.1) has been marked non-normative.</p>
<h3 id="c1.3"><a href="about.html#q3">Section 1.3 How the specification is organized</a></h3>
<p>This section (formerly Section 1.2) has been marked non-normative.</p>
<h3 id="c1.4.2.1"><a href="about.html#q7">Section 1.4.2.1 Value</a></h3>
<p>This section (formerly unnumbered under 1.3.2) notes that value types are specified
in terms of tokens and that spaces may appear between tokens in values. A note
explains that spaces are required between some tokens.</p>
<h3 id="c1.4.2.6"><a href="about.html#q12">Section 1.4.2.6 Media groups</a></h3>
<p>This section (formerly unnumbered under 1.3.2) now declares the Media line
in property definitions to be non-normative.</p>
<h3 id="c1.4.2.7"><a href="about.html#q13">Section 1.4.2.7 Computed value</a></h3>
<p>A new line is added to each property definition specifying what the computed
values are for the property. (This defines what level of computation is done to
a property value before inheritance and before certain other calculations.)</p>
<h3 id="c1.4.4"><a href="about.html#q15">Section 1.4.4 Notes and examples</a></h3>
<p>This section (formerly 1.3.4) now specifies that HTML examples lacking DOCTYPE
declarations are SGML Text Entities conforming to the HTML 4.01 Strict DTD [HTML4].
The markup for many examples has been reformulated to either include a DOCTYPE or
conform to this definition.</p>
<h3 id="c1.5"><a href="about.html#q17">Section 1.5 Acknowledgements</a></h3>
<p>This section (formerly 1.4) has been updated to reflect contributions to CSS2.1
and has been marked non-normative.<p>
<h3 id="c3.2"><a href="conform.html#conformance">Section 3.2
Conformance</a></h3>
<p>Support for user style sheets is now required (in most cases),
rather than just recommended.
<p>Support for turning of author style sheets is now required.</p>
<p>Application of CSS properties to form controls is explicitly undefined.
Authors are recommended to treat form control styling capabilities in UAs
as experimental.</p>
<h3 id="c3.3"><a href="conform.html#q3">Section 3.3
Error Conditions</a></h3>
<p>This section changed to say that error handling <em>is</em> specified
in most cases.</p>
<!-- Chapter 5 -->
<h3 id="c5.8.1"><a href="selector.html#q10">Section 5.8.1 Matching
attributes and attribute values</a></h3>
<p>RFC 3066 replaces RFC 1766.
<h3 id="c5.8.3"><a href="selector.html#class-html">Section 5.8.3 Class
selectors</a></h3>
<p>Class selectors are allowed for other formats than HTML.
<p>Added a note about matching classes in formats with multiple class
attributes per element. The behavior is non-normative, because, at the
time of writing, there exist no such formats.
<h3 id="c5.9"><a href="selector.html#id-selectors">Section 5.9 ID
selectors</a></h3>
<p>Specified how to match elements with two or more ID attributes.
<h3 id="c5.10"><a href="selectors.html#pseudo-elements">Section 5.10
Pseudo-elements and pseudo-classes</a></h3>
<p>Removed exception for HTML UAs that allowed them (and only them) to
ignore ':first-letter' and ':first-line'.
<h3 id="c5.11.2"><a href="selectors.html#link-pseudo-classes">5.11.2
The link pseudo-classes: :link and :visited</a></h3>
<p>UAs may return a :visited link to :link status at some point. (This
was previously a note, but is now normative.)
<p>Added a note about privacy concerns with link pseudo classes and
allowed UAs to treat :visited as :link.
<h3 id="c5.11.4"><a href="selectors.html#lang">Section 5.11.4 The
language pseudo-class: :lang</a></h3>
<p>The identifier C in ':lang(C)' need not be a valid language code,
but it must not be empty.
<h3 id="c5.12.1"><a href="selector.html#first-line-pseudo">Section
5.12.1 The :first-line pseudo-element</a></h3>
<p>':first-line' also applies to inline blocks, table captions and
table cells. Added a definition of "first formatted line" to make the
rules about which line is the first line more precise.
<p>UAs are no longer forbidden from applying more properties than the
given list.
<h3 id="c5.12.2"><a href="selector.html#first-letter">Section 5.12.2
The :first-letter pseudo-element</a></h3>
<p>More precise definition of first letter. Added rules for cases
where the first letter is in an inline block or table cell. Added
rules for cases when preceding punctuation is in a different element
from the first letter itself.
<p>UAs may apply other properties to first letters than the given
list.
<p>Unicode character classes Pi and Pf added to the definition of
punctuation.
<!-- Chapter 6 -->
<h3 id="c6.1"><a href="cascade.html#q1">Section 6.1 Specified, computed, and actual values</a></h3>
<p>Redefined "computed value" and created the concept of "used value"
so that inheritance can be performed without laying out the document.
This change has the effect of allowing (requiring) percentages to be inherited
as percentages and affects many other layout calculations throughout the spec.</p>
<p>Since computed value of a property can now also be a percentage. In
particular, the following properties now inherit the percentage if the
specified value is a percentage:
<ul>
<li>background-position
<li>bottom, left, right, top
<li>height, width
<li>margin-bottom, margin-left, margin-right, margin-top,
<li>min-height, min-width
<li>padding-bottom, padding-left, padding-right, padding-top
<li>text-indent
</ul>
<p>Note that only 'text-indent' inherits by default, the others only
inherit if the 'inherit' keyword is specified.
<h3 id="c6.4.1"><a href="cascade.html#cascading-order">Section 6.4.1 Cascading order</a></h3>
<p>Changed suggestion that user be able to turn off author styles to a requirement.</p>
<h3 id="c6.4.3"><a href="cascade.html#specificity">Section 6.4.3
Calculating a selector's specificity</a></h3>
<p>The "style" attribute now has a higher specificity than any style
rule.</p>
<p>Pseudo-elements are now counted with elements in calculating a
a selector's specificity.</p>
<h3 id="c6.4.4"><a href="cascade.html#q13">Section 6.4.4 Precedence
of non-CSS presentational hints</a></h3>
<p>"Non-CSS presentational hints" no longer exist, with the exception
of a small set of attributes in HTML.</p>
<h3 id="c7.3"><a href="media.html#media-types">Section 7.3
Recognized Media Types</a></h3>
<p>Added 'speech' media type.</p>
<p>Marked "Media" field in property descriptions informative.</p>
<h3 id="c7.3.1"><a href="media.html#media-types">Section 7.3.1
Media Groups</a></h3>
<p>Marked this section informative.</p>
<p>Added sound to 'handheld' in media type/media group table.</p>
<p>Changed 'tactile' to be both 'static' and 'interactive'.</p>
<h3 id="c8.3"><a href="box.html#margin-properties">Section 8.3 Margin properties</a></h3>
<p>If the containing block's width depends on an element with percentage
margins, then the resulting layout is undefined in CSS 2.1.</p>
<h3 id="c8.3.1"><a href="box.html#collapsing-margins">Section 8.3.1 Collapsing margins</a></h3>
<p>In the definition of "collapsing margins", added "non-empty content"
and "clearance" to the parenthetical list of things that prevent consecutive
margins from being adjoining.</p>
<p>Vertical margins of elements with 'overflow' other than 'visible' no longer
collapse with their in-flow children.</p>
<p>Defined how margins collapse through an element with adjoining top and
bottom margins.</p>
<p>Added that margins of the root element's box do not collapse.</p>
<p>More rigorously <a href="box.html#what-is-adjoining">defined "adjoining" for margin collapsing</a>.</p>
<h3 id="c8.4"><a href="box.html#padding-properties">Section 8.4 Padding properties</a></h3>
<p>If the containing block's width depends on an element with percentage
padding, then the resulting layout is undefined in CSS 2.1.</p>
<h3 id="c8.5.2"><a href="box.html#border-color-properties">Section 8.5.2 Border color</a></h3>
<p>'transparent' can now be specified independently for each border side,
on par with <color>.</p>
<h3 id="c8.5.3"><a href="box.html#border-style-properties">Section 8.5.3 Border style</a></h3>
<p>3D border styles ('groove', 'ridge', 'inset', 'outset') now depend on the
corresponding border-color rather than on 'color'.</p>
<h3 id="c8.6"><a href="box.html#q11">Section 8.6 The box model for inline elements in bidirection context</a></h3>
<p>Added this new section to specify layout of inline boxes when affected by bidi.</p>
<h3 id="c9.1.2"><a href="visuren.html#containing-block">Section 9.1.2
Containing blocks</a></h3>
<p>Removed paragraphs about the initial containing block, as this is
now defined differently. (See <a href="#initial-containing-block">changes
to section 10.1</a>.)</p>
<h3 id="c9.2.1.1"><a href="visuren.html#anonymous-block-level">Section 9.2.1.1
Anonymous block boxes</a></h3>
<p>Added a paragraph to define formatting when an inline box contains
a block box.</p>
<p>Specified what property values are applied to anonymous boxes.</p>
<h3 id="c9.2.2.1"><a href="visuren.html#anonymous">Section 9.2.2.1
Anonymous inline boxes</a></h3>
<p>Specified that collapsed whitespace does not generate anonymous
inline boxes.</p>
<h3 id="c9.2.3"><a href="visuren.html#run-in">Section 9.2.3
Run-in boxes</a></h3>
<p>Changed run-in rules so that a) run-ins that contain blocks become blocks
b) run-ins can only run into sibling blocks and c) run-ins cannot run into
other run-ins.</p>
<h3 id="c9.2.4"><a href="visuren.html#display-prop">Section 9.2.4
The 'display' property</a></h3>
<p>The 'marker' and 'compact' values of the 'display' property are
not part of CSS 2.1. Text relating to these values has been
removed throughout the specification.</p>
<p>Defined the computed value of 'display' as the specified value
except for positioned and floating elements and for the root element.
The computed value of 'display' for these elements is defined in
<a href="visuren.html#dis-pos-flo">section 9.7</a> and is slightly
different from the definition in CSS2.</p>
<p>Conforming HTML UAs are no longer allowed to ignore the 'display'
property.</p>
<h3 id="c9.3.1"><a href="visuren.html#choose-position">Section 9.3.1
Choosing a positioning scheme</a></h3>
<p>The 'position' property now applies to all elements, including
generated content.</p>
<p>The effect of relative positioning on table captions and internal
table elements is undefined in CSS 2.1.</p>
<p>For fixed positioning, introduced a conflict between this section
and section 10.1 rule 3.
See <a href="http://lists.w3.org/Archives/Member/w3c-css-wg/2003AprJun/0172.html">howcome</a>
for rationale.</p>
<p>Forbid UAs from paginating the content of fixed boxes.</p>
<p>UAs are allowed to treat all values of 'position' as 'static' on
the root element.</p>
<h3 id="c9.3.2"><a href="visuren.html#position-props">Section 9.3.2
Box offsets</a></h3>
<p>Defined computed values of 'top', 'right', 'bottom', 'left' based
on the value of 'position'.</p>
<p>Percentage offsets are no longer undefined for containing blocks
without an explicit height.</p>
<h3 id="c9.4.1"><a href="visuren.html#block-formatting">Section 9.4.1
Block formatting contexts</a></h3>
<p>Specified that floats, absolutely positioned elements, inline-blocks,
table-cells, table-captions, and elements with 'overflow' other than
'visible' establish new block formatting contexts.</p>
<p>In the paragraph about the position of a box's outer edge with respect
to its containing block, except boxes that establish a new block formatting
context, as they may become narrower due to floats.</p>
<h3 id="c9.4.2"><a href="visuren.html#inline-formatting">Section 9.4.2
Inline formatting context</a></h3>
<p>Specified that the effect of 'justify' on the content of a line box
does not affect the contents of inline-table and inline-block boxes.</p>
<p>Empty line boxes are now required to be treated as zero-height and
ignored in margin collapsing.</p>
<h3 id="c9.4.3"><a href="visure.html#relative-positioning">Section 9.4.3
Relative positioning</a></h3>
<p>Added several paragraphs and an example to explain exactly what the
computed values of relatively-positioned offsets are, how they affect
each other, and what happens when the positioning is overconstrained.
(These were not previously defined.)</p>
<h3 id="c9.5"><a href="visuren.html#floats">Section 9.5
Floats</a></h3>
<p>Floats are no longer required to have an explicit width.</p>
<p>Floats outside of line boxes no longer align to the bottom of
the preceding block box; it is implied that they are initially
aligned with their non-floated position.</p>
<p>Specified that "If a shortened line box is too small to contain any
further content, then it is shifted downward until either it fits or
there are no more floats present."</p>
<p>Specified that the border box of a table, block-level replaced element,
or element in the normal flow that establishes a new block formatting
context must not overlap any floats in the same block formatting context.</p>
<h3 id="c9.5.1"><a href="visuren.html#float-position">Section 9.5.1
Positioning the float</a></h3>
<p>The 'float' property now also applies to :before/:after and generated
content.</p>
<p>UAs are now allowed to treat all values of float as 'none' on the
root element.</p>
<p>Added to rule 4 prose to define the position of a float when it
occurs between two collapsing margins.</p>
<h3 id="c9.5.2"><a href="visuren.html#flow-control">Section 9.5.2
Controlling flow next to floats</a></h3>
<p>Defined <em>clearance</em> to precisely detail the 'clear' property's
effect on margin collapsing and the block's cleared position.</p>
<p>Added note to explain effect of 'clear' on inline elements since
CSS1 (but not CSS2 or CSS 2.1) allows 'clear' on inline elements.</p>
<h3 id="c9.7"><a href="visuren.html#dis-pos-flo">Section 9.7
Relationships between 'display', 'position', and 'float'</a></h3>
<p>Changed rules to convert 'display' not always to 'block', but
to an appropriate block-level display value as given by a mapping
table.</p>
<p>Added rule 4 to convert root element's 'display' value according
to the mapping.</p>
<h3 id="c9.9"><a href="visuren.html#q29">Section 9.9
Layered presentation</a></h3>
<p>Specified that the background and borders of an element that forms
a stacking context are behind all of its descendants, altered stacking
context prose to be more precise, and added a normative
<a href="zindex.html">Appendix E: Elaborate description of Stacking
Contexts</a> to be even more precise about the position of borders,
backgrounds, and content on the z-axis.</p>
<h3 id="c9.10"><a href="visuren.html#direction">Section 9.10
Text direction</a></h3>
<p>Conforming UAs are now allowed to not support bidirectional text; in
this case they must ignore the 'direction' and 'unicode-bidi' properties.
However since applying bidi can have an effect even when a document
doesn't contain right-to-left characters, UAs that do support bidi are
no longer permitted to not apply the algorithm just because the document
lacks right-to-left characters.</p>
<p>Added a paragraph to define precisely how the Unicode bidirectional
algorithm applies to text in the CSS formatting model and how the CSS
'direction' property on blocks maps into the algorithm.</p>
<p>Conforming HTML UAs are no longer exempt from supporting 'direction'
and 'unicode-bidi'.</p>
<h3 id="c10"><a href="visudet.html">Chapter
Visual formatting model details</a></h3>
<p>Updated prose to use the terms "specified", "computed" and "used"
as appropriate when referencing values. This affects many calculations
in this section. (See <a href="#c6.1">changes to section 6.1</a>.)</p>
<h3 id="c10.1"><a href="visudet.html#containing-block-details">Section 10.1
Definition of "containing block"</a></h3>
<p id="initial-containing-block">In rule 1, defined the initial
containing block as the viewport for continuous media and the page
area for paged media. (It was previously undefined.)</p>
<p>In rule 2, defined the page area as the containing block for fixed
positioned elements in paged media.</p>
<p>In rule 4.1, when the containing block of an absolutely-positioned
element is formed by an inline-level element, it is now formed by that
element's padding edges, not its content edges.</p>
<p>In rule 4, changed the containing block for absolutely positioned
elements with only statically positioned elements from the root's
content box to the initial containing block.</p>
<p>Specified the positioning and breaking behavior of absolutely-positioned
elements in paged media.</p>
<h3 id="c10.2"><a href="visudet.html#the-width-property">Section 10.2
Content width</a></h3>
<p>Declared that if the containing block's width depends on an element's
percentage width, then the resulting layout is undefined in CSS 2.1.</p>
<h3 id="c10.3"><a href="visudet.html#Computing_widths_and_margins">Section 10.3
Calculating widths and margins</a></h3>
<p>Added sections 10.3.9 and 10.3.10 to define calculations for inline blocks.</p>
<h3 id="s-10-3-7"><a
href="visudet.html#abs-non-replaced-width">Section 10.3.7 Absolutely
positioned, non-replaced elements</a></h3>
<p>Absolutely positioned elements can now "shrink-wrap" their
contents:
<p>When both 'width' and 'right' (or 'width' and 'left') are 'auto',
the element's computed width is the width of the contents (using an
algorithm similar to that for table cells) and then 'right' (or
'left') is solved for. CSS2 incorrectly said that 'right' (or 'left') was
set to 0 in that case, and then width was solved for.
<h3 id="s-10-6-4"><a
href="visudet.html#abs-non-replaced-height">Section 10.6.4 Absolutely
positioned, non-replaced elements</a></h3>
<p>Like normal-flow block-level elements, absolutely positioned
elements by default take on the height of their contents
("shrink-wrap"). If 'height' and 'bottom' are both 'auto', the
computed value of 'height' is set to the height of the contents and
then 'bottom' is solved. CSS2 incorrectly said the reverse: 'bottom'
was set to 0 and then height was solved.
<h3 id="c11.1"><a href="visufx.html#overflow-clipping">Section 11.1
Overflow and clipping</a></h3>
<p>Specified that 'overflow' clips to the padding edge.</p>
<h3 id="c11.1.1"><a href="visufx.html#overflow">Section 11.1.1
Overflow</a></h3>
<p>'projection' media are no longer permitted to print overflowing
content for 'overflow: scroll'. 'print' media now <em>may</em>, as
opposed to <em>should</em>.</p>
<p>UAs are now required to apply the 'overflow' property set on the root
element to the viewport. Additionally, HTML UAs must use the 'overflow'
property on the HTML BODY element instead if the root element's
'overflow' value is 'visible'.</p>
<p>Specified placement of scrollbar in the box model.</p>
<h3 id="c11.1.2"><a href="visufx.html#clipping">Section 11.1.2 Clipping:
the 'clip' property</a></h3>
<p>The 'clip' property now applies only to absolutely positioned elements.
Furthermore, it applies to those elements even when their 'overflow' is
'visible'.</p>
<p>The default value of 'clip', 'auto', now indiciates no clipping
rather than clipping to the element's border box.</p>
<p>Values of "rect()" should be separated by commas. UAs are
required to support this syntax, but may also support a space-separated
syntax since CSS2 was not clear about this.</p>
<p>While CSS2 specified that values of "rect()" give offsets from the
respective sides of the box, current implementations interpret values
with respect to the top and left edges for <em>all</em> four values
(top, right, bottom, and left). This is now the specified
interpretation.
<h3 id="c12"><a href="generate.html">Chapter 12
Generated content, automatic numbering, and lists</a></h3>
<p>Moved all discussion of aural rendering to Appendix A.</p>
<h3 id="c12.1"><a href="generate.html#before-after-content">Section 12.1
The :before and :after pseudo-elements</a></h3>
<p>Removed restrictions on which properties and property values
are allowed on ':before' and ':after' pseudo-elements.</p>
<h3 id="c12.2"><a href="generate.html#content">Section 12.2 The
'content' property</a></h3>
<p>The initial value of 'content' is now 'normal', not the empty
string.</p>
<p>The 'content' property now distinguishes between the empty string,
which creates an empty box; and 'normal'/'none', which create no box
at all. (There is no distinction between 'normal' and 'none' in
level 2.)</p>
<p>A UA is now allowed to report a URI that fails to download.</p>
<p>Removed recommendation to authors to put rules with media-sensitive
'content' properties inside '@media'.</p>
<p>Whether '\A' escapes in generated content create line breaks is now
subject to the 'white-space' property.</p>
<p>The former section 12.3 on interaction between ':before', ':after'
and elements with 'display: compact' or 'display: run-in' has been
removed. (The interaction is already fully defined, because generated
content consists of boxes in the tree, no different from other boxes.)
<h3 id="c12.3.2"><a href="generate.html#quotes-insert">Section 12.3.2
Inserting quotes with the 'content' property</a></h3>
<p>Specified that extra 'close-quote's and 'no-close-quote's (those
without a matching 'open-quote' or 'no-open-quote') are not rendered,
and that neither 'close-quote' nor 'no-close-quote' cause the quoting
depth to be negative.</p>
<h3 id="c12.4"><a href="generate.html#counters">Section 12.4 Automatic
counters and numbering</a></h3>
<p>Defined what a rule with duplicate counters, such as
'counter-reset: section 2 section', means.</p>
<h3 id="c12.4.1"><a href="generate.html#scope">Section 12.4.1 Nested
counters and scope</a></h3>
<p>The scope of a counter no longer defaults to the whole document,
but starts at the first element that uses the counter. (This affects
counters that are used without a prior 'counter-reset' to set the
scope explicitly.)</p>
<h3 id="c12.5"><a href="generate.html#q10">Section 12.5
Lists</a></h3>
<p>Removed text in section 12.5 (formerly 12.6) relating to the
'marker' display value.</p>
<p>Removed the 'marker-offset' property (and thus former section 12.6.1).</p>
<h3 id="c12.5.1"><a href="generate.html#lists">Section 12.5.1
Lists</a></h3>
<p>The list styles 'hebrew', 'armenian', 'georgian', 'cjk-ideographs',
'hiragana', 'katakana', 'hiragana-iroha' and 'katakana-iroha' have
been removed due to lack of implementation experience. (They are
expected to return in the CSS3 Lists module.)</p>
<p>Removed the sentence that said that an unknown value for
'list-style-type' should cause the value 'decimal' to be used instead.
Instead, normal parsing rules apply and cause the rule to be
ignored.</p>
<h3 id="c13.1"><a href="page.html">Chapter 13 Paged media</a></h3>
<p>The 'size', 'marks', and 'page' properties are not part of
CSS 2.1.</p>
<h3 id="c13.2.2"><a href="page.html#q6">Section 13.2.2
Page selectors</a></h3>
<p>The requirement for UA's to honor different declarations for
:left, :right, and :first pages has been softened to simplify
implementations: the page area of the :first page may be used
for :left and :right pages as well.</p>
<h3 id="c13.3.1"><a href="page.html#page-break-props">Section 13.3.1
Page break properties</a></h3>
<p>UAs are now only required to apply the page break properties
to block-level elements in the normal flow of the root element,
not to other blocks.However, UAs are now permitted to apply these
properties to elements other than block-level elements.</p>
<p>Defined treatment of margins, borders, and padding when a page
break splits a box.</p>
<h3 id="c13.3.3"><a href="page.html#allowed-page-breaks">Section 13.3.3
Allowed page breaks</a></h3>
<p>When dropping restrictions to find a page breaking opportunity,
rule A is dropped together with B and D rather than together with C.</p>
<p>Removed restriction on breaking within absolutely positioned boxes.</p>
<h3 id="c14.2.1"><a href="colors.html#background-properties">Section
14.2.1 Background properties</a></h3>
<p>For 'background-position', the restriction that keywords cannot
be combined with percentage or length values is removed. I.e., a
value like: '25% top' is now allowed. Also, 'background-position'
now applies to all elements, not just to block-level and replaced
elements.</p>
<p>User agents are no longer allowed to treat a value of 'fixed'
for 'background-attachment' as 'scroll'. Instead they must ignore
all such declarations as if 'fixed' were an invalid value.</p>
<h3 id="c14.3"><a href="colors.html#gamma-correction">Section
14.3 Gamma correction</a></h3>
<p>The contents of this section is now a non-normative note.</p>
<h3 id="c15"><a href="fonts.html">Chapter 15 Fonts</a></h3>
<p>The 'font-stretch' and 'font-size-adjust' properties have
been removed in CSS 2.1.</p>
<p>Font descriptors, the '@font-face' declaration, and all
associated parts of the font matching algorithm have been
removed in CSS 2.1.</p>
<h3 id="c15.2"><a href="fonts.html#algorithm">Section 15.2
Font matching algorithm</a></h3>
<p>In this section (previously 15.5), in step 5 (prevously 8)
of the font matching algorith, the UA is now allowed to use
multiple default fallback fonts to find a glyph for a given
character.</p>
<p>In the per-property rule 2, specified that if there is only
a small-caps font in a given family, then that font will be
selected by 'normal'.</p>
<h3 id="c15.3"><a href="fonts.html#font-family-prop">Section 15.2.2 Font family</a></h3>
<p>The "missing character" glyph is no longer considered a match
for the last font in a font set, but is now considered a match
for U+FFFD.</p>
<p>Certain punctuation characters when appearing in unquoted font
family names are now required to be escaped.</p>
<h3 id="c15.5"><a href="fonts.html#small-caps">Section 15.5
Small-caps</a></h3>
<p>The 'font-variant' property's effect is no longer restricted to
bicameral scripts.</p>
<h3 id="c15.6"><a href="fonts.html#font-boldness">Section 15.6
Font boldness</a></h3>
<p>The computed value of 'font-weight' has been defined more
precisely such that the 'bolder' and 'lighter' values have an
appropriate effect when inheriting through elements with
different font-families.</p>
<h3 id="c15.7"><a href="fonts.html#font-size-props">Section 15.7
Font size</a></h3>
<p>Removed suggestion of 1.2 fixed ratio between keyword font
sizes in favor of notes recommending a variable ratio and a
smallest font-size no less than 9 pixels per EM unit.</p>
<p>Added table mapping CSS font-size keywords to HTML font size numbers.</p>
<h3 id="c16"><a href="text.html">Chapter 16 Text</a></h3>
<p>The 'text-shadow' property is not in CSS 2.1.
<h3 id="c16.2"><a href="text.html#alignment-prop">Section 16.2
Alignment</a></h3>
<p>The initial value of 'text-align' is no longer UA-defined but
a nameless value that acts as 'left' if 'direction' is 'ltr',
'right' if 'direction' is 'rtl'.</p>
<p>The <string> value for 'text-align' is not part of
CSS 2.1.</p>
<p>For 'text-align', specified that 'justify' is treated as the initial
value when computed value of 'white-space' is 'pre' or 'pre-line'.</p>
<h3 id="c16.3.1"><a href="text.html#lining-striking-props">Section 16.3.1
Underlining, over lining, striking, and blinking</a></h3>
<p>More precisely defined what boxes are affected by text decorations
specified on a given element.</p>
<p>Specified that underlines, overlines, and line-throughs apply ony to
text.</p>
<p>Specified that an underline, overline, or line-through applied across
a line must be at a constant vertical position and with a constant
thickness across the entire line.</p>
<p>Specified how text decorations are affected by relative positioning
on descendants.</p>
<p>User agents are now allowed to recognize the 'blink' value but not
blink, whereas before they were required to ignore the 'blink' value
if they chose not to support blinking text.</p>
<p>Added text to allow older UAs to conform to this section if they
follow CSS2's 'text-decoration' requirements but not the additional
requirements in CSS2.1.</p>
<h3 id="c16.4"><a href="text.html#spacing-props">Section 16.4
Letter and word spacing</a></h3>
<p>Support for the various values of 'letter-spacing' and 'word-spacing'
is no longer optional.</p>
<p>Specified that word spacing affects each space, non-breaking space,
and ideographic space left in the text after white space processing
rules have been applied.</p>
<h3 id="c16.5"><a href="text.html#caps-prop">Section 16.5
Capitalization</a></h3>
<p>UAs are no longer allowed to not transform characters for which there
is an appropriate transformation but which are outside of Latin-1.</p>
<h3 id="c16.6"><a href="text.html#white-space-prop">Section 16.6
Whitespace</a></h3>
<p>The 'white-space' property now applies to all elements, not just
to block-level elements.</p>
<p>"\A" in generated content no longer forces a break for 'normal'
and 'nowrap' values of 'white-space'.</p>
<p>Specified that the CSS white space processing model assumes all
newlines have been normalized to line feeds.</p>
<p>Added <a href="text.html#q8">section 16.6.1</a> to precisely define
white space handling.</p>
<p>Added <a href="text.html#q10">section 16.6.3</a> to specify handling
of control and combining characters.</p>
<h3 id="c17"><a href="tables.html">Chapter 17
Tables</a></h3>
<p>Moved all discussion of aural rendering and related properties
to Appendix A.</p>
<p>Updated prose to use the terms "specified", "computed" and "used"
as appropriate when referencing values. (See <a href="#c6.1">changes
to section 6.1</a>.)</p>
<h3 id="c17.2"><a href="tables.html#q2">17.2 The CSS table model</a></h3>
<p>Defined handling of multiple 'table-header-group' and 'table-footer-group'
elements.</p>
<p>UAs are no longer allowed to ignore the table display values
on arbitrary HTML elements, only on HTML table elements.</p>
<h3 id="c17.2.1"><a href="tables.html#anonymous-boxes">Section 17.2.1
Anonymous table objects</a></h3>
<p>Changed rules so that internal table elements without an enclosing
'table' or 'inline-table' box generate an anonymous 'inline-table'
rather than an anonymous 'table' when inside a "display: inline"
parent element.</p>
<p>The anonymous table object rules now treat anonymous boxes as equal
to elements' boxes. Replaced several instances of the term "element" with
"box", removed several instances of "(in the document tree)" and clarified
that anonymous boxes generated in earlier rules are part of the input to
later rules. Also replaced the term "object" with "box", as is used
throughout the rest of the specification.</p>
<p>HTML UAs are no longer exempt from the anonymous box generation rules.</p>
<h3 id="c17.4"><a href="tables.html#q5">Section 17.4
Tables in the visual formatting model</a></h3>
<p>The relationship of the caption box, table box, and outer anonymous
table box has been changed as follows:</p>
<ul>
<li>The margins of the table box now apply to the outer (anonymous)
table box that encloses both the table box and the caption(s),
not to the inner table box.</li>
<li>The width of the anonymous box is now equal to the border-box
width of the table box inside it instead of adapting to the widths
and positions of both the table box and its captions.</li>
</ul>
<h3 id="c17.4.1"><a href="tables.html#q6">Section 17.4.1
Caption position and alignment</a></h3>
<p>The 'left' and 'right' values on 'caption-side' have been removed.</p>
<h3 id="c17.5"><a href="tables.html#q7">Section 17.5
Visual layout of table contents</a></h3>
<p>Changed rule 5 in grid layout rules to allow overlapping of
table cells instead of leaving skipping a gap in the grid to
avoid overlap.</p>
<h3 id="c17.5.1"><a href="tables.html#table-layers">Section 17.5.1
Table layers and transparency</a></h3>
<p>In point 6, changed 'These "empty" cells are transparent' to:
<blockquote>
<p>If the value of their 'empty-cells' property is 'hide'
these "empty" cells are transparent through the cell, row, row group,
column, and column group backgrounds, letting the table background
show through.</blockquote>
<h3 id="c17.5.2.1"><a href="tables.html#fixed-table-layout">Section 17.5.2.1
Fixed table layout</a></h3>
<p>Specified that in fixed table layout, extra columns in rows
after the first must not be rendered.</p>
<h3 id="c17.5.2.2"><a href="tables.html#auto-table-layout">Section 17.5.2.2
Automatic table layout</a></h3>
<p>Restricted inputs to the table layout algorithm for 'table-layout: auto',
whether or not the algorithm described in this section is used, to the
width of the containing block and the content of, and any CSS properties
set on, the table and any of its descendants.</p>
<p>Added rule 4 to include the column group's width in the algorithm
for determining column widths.</p>
<h3 id="c17.5.3"><a href="tables.html#height-layout">Section 17.5.3
Table height algorithms</a></h3>
<p>The 'height' property on tables is now treated as a mininimum
height; the UA no longer has the option of using 'height' to
constrain the size of the table to be smaller than its contents.</p>
<p>Percentage heights on table cells, rows, and row groups now
compute to 'auto'.</p>
<p>The baseline of a cell is now defined much more precisely.</p>
<p>Defined the baseline of a row with no baseline-aligned cells.</p>
<h3 id="c17.5.4"><a href="tables.html#column-alignment">17.5.4
Horizontal alignment in a column</a></h3>
<p>The <string> value for 'text-align' is not part of
CSS 2.1.</p>
<h3 id="c17.6"><a href="tables.html#borders">Section 17.6
Borders</a></h3>
<p>Several popular browsers assume an initial value for
'border-collapse' of 'separate' rather than 'collapse' or exhibit
behavior that is close to that value, even if they do not actually
implement the CSS table model. 'Separate' is now the initial value.</p>
<h3 id="c17.6.1"><a href="tables.html#separated-borders">Section 17.6.1
The separated borders model</a></h3>
<p>Specified the effect of padding on the table element.</p>
<p>Specified which parts of the table are included in the width
measurement.</p>
<h3 id="c17.6.1.1"><a href="tables.html#empty-cells">Section 17.6.1.1
Borders and Backgrounds around empty cells</a></h3>
<p>Refined definition of "empty" when used as a condition for the
'empty-cells' property so that it is not triggered when the cell
includes any child elements, even if they are empty.</p>
<p>The 'empty-cells' property now hides both borders and backgrounds,
not just borders.</p>
<p>Changed behavior of a row when it collapses due to 'empty-cells':
it is no longer treated as "display: none". Instead it is given zero
height and its associated border-spacing is eliminated.</p>
<h3 id="c17.6.2"><a href="tables.html#collapsing-borders">Section 17.6.2
The collapsing border model</a></h3>
<p>Specified which part of the table is considered the border are
in the collapsed borders model and how its width is calculated.
The edges of the box in which the table background is painted
is, however left explicitly undefined.</p>
<h3 id="c17.6.2.1"><a href="tables.html#border-conflict-resolution">Section 17.6.2.1
Border conflict resolution</a></h3>
<p>Defined in rule 4 what happens when two elements of the same
type conflict and their borders have the same width and style.</p>
<h3 id="c18.4"><a href="ui.html#dynamic-outlines">Section 18.4
Dynamic outlines</a></h3>
<p>Position of outline with respect to the border edge is now
only suggested, not required.</p>
<p>Conformant UAs are now allowed to ignore the 'invert' value.
In such UAs the initial value of 'outline-color' is the value of
the 'color' property.</p>
<h3 id="s-12"><a href="generate.html">Chapter 12 Generated content,
automatic numbering, and lists</a></h3>
<p>The 'marker' value for 'display' does not exist in CSS 2.1
<h3 id="cA"><a href="aural.html">Appendix A. Aural style
sheets</a></h3>
<p>Chapter 19 on aural style sheets has become appendix A and is not
normative in CSS 2.1. Related units (deg, grad, rad, ms, s, Hz,
kHz) are also moved to this appendix, as is the 'speak-header'
property from the "tables" chapter and other notes on aural table
rendering. The 'aural' media type is deprecated in favor of the new
'speech' media type.</p>
<h3 id="cA.5"><a href="aural.html#pause-props">Appendix A Section 5 Pause properties</a></h3>
<p>Changed the initial value of 'pause-before' and 'pause-after' to