@@ -13,7 +13,7 @@ Previous Version: http://www.w3.org/TR/2013/WD-css-syntax-3-20130919/
13
13
Editor : Tab Atkins Jr., Google, http://xanthir.com/contact/
14
14
Editor : Simon Sapin, Mozilla, http://exyr.org/about/
15
15
Abstract : This module describes, in general terms, the basic structure and syntax of CSS stylesheets. It defines, in detail, the syntax and parsing of CSS - how to turn a stream of bytes into a meaningful stylesheet.
16
- Ignored Terms : <keyframes-name>, <keyframe-rule>, <keyframe-selector>, <translation-value>, <media-query-list>
16
+ Ignored Terms : <keyframes-name>, <keyframe-rule>, <keyframe-selector>, <translation-value>, <media-query-list>, <unicode-range-token>
17
17
Link Defaults : css-text-decor-3 (property) text-decoration, css-color-3 (property) color, css-transforms-1 (function) translatex()
18
18
</pre>
19
19
@@ -431,7 +431,6 @@ Tokenization</h2>
431
431
<dfn><number-token></dfn> ,
432
432
<dfn><percentage-token></dfn> ,
433
433
<dfn><dimension-token></dfn> ,
434
- <dfn><unicode-range-token></dfn> ,
435
434
<dfn><include-match-token></dfn> ,
436
435
<dfn><dash-match-token></dfn> ,
437
436
<dfn><prefix-match-token></dfn> ,
@@ -463,13 +462,6 @@ Tokenization</h2>
463
462
<<number-token>> , <<percentage-token>> , and <<dimension-token>> have a representation composed of one or more <a>code points</a> , and a numeric value.
464
463
<<number-token>> and <<dimension-token>> additionally have a type flag set to either "integer" or "number". The type flag defaults to "integer" if not otherwise set.
465
464
<<dimension-token>> additionally have a unit composed of one or more <a>code points</a> .
466
-
467
- <li>
468
- <<unicode-range-token>> has
469
- a <dfn id=unicode-range-start title="start of the range">start</dfn>
470
- and an <dfn id=unicode-range-end title="end of the range">end</dfn> ,
471
- a pair of integers.
472
-
473
465
</ul>
474
466
475
467
Note: The type flag of hash tokens is used in the Selectors syntax [[SELECT]] .
@@ -700,34 +692,6 @@ Token Railroad Diagrams</h3>
700
692
T: %
701
693
</pre>
702
694
703
- <dt id="unicode-range-token-diagram"> <<unicode-range-token>>
704
- <dd>
705
- <pre class='railroad'>
706
- Choice:
707
- T: U
708
- T: u
709
- T: +
710
- Choice:
711
- Plus:
712
- N: hex digit
713
- C: 1-6 times
714
- Seq:
715
- Star:
716
- N: hex digit
717
- C: 1-5 times
718
- Plus:
719
- T: ?
720
- C: 1 to (6 - digits) times
721
- Seq:
722
- Plus:
723
- N: hex digit
724
- C: 1-6 times
725
- T: -
726
- Plus:
727
- N: hex digit
728
- C: 1-6 times
729
- </pre>
730
-
731
695
<dt id="include-match-token-diagram"> <<include-match-token>>
732
696
<dd>
733
697
<pre class='railroad'>
@@ -3338,43 +3302,39 @@ Serialization</h2>
3338
3302
<th> number
3339
3303
<th> percentage
3340
3304
<th> dimension
3341
- <th> unicode range
3342
3305
<th> CDC
3343
3306
<th> (
3344
3307
<th> ?
3345
3308
<tr>
3346
3309
<th> ident
3347
- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td>
3310
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td>
3348
3311
<tr>
3349
3312
<th> at-keyword
3350
- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td>
3313
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td>
3351
3314
<tr>
3352
3315
<th> hash
3353
- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td>
3316
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td>
3354
3317
<tr>
3355
3318
<th> dimension
3356
- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td>
3319
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td>
3357
3320
<tr>
3358
3321
<th> #
3359
- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td> <td>
3322
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td> <td>
3360
3323
<tr>
3361
3324
<th> -
3362
- <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> ✗ <td> <td> <td>
3325
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
3363
3326
<tr>
3364
3327
<th> number
3365
- <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> ✗ <td> <td> <td>
3328
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
3366
3329
<tr>
3367
3330
<th> @
3368
- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td> <td> <td> ✗<td> <td> <td>
3369
- <tr>
3370
- <th> unicode range
3371
- <td> ✗<td> ✗<td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td> <td> ✗
3331
+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td> <td> <td> <td> <td>
3372
3332
<tr>
3373
3333
<th> .
3374
- <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td> <td>
3334
+ <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
3375
3335
<tr>
3376
3336
<th> +
3377
- <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td> <td>
3337
+ <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
3378
3338
</table>
3379
3339
3380
3340
<table class='data'>
@@ -3560,8 +3520,15 @@ Changes from CSS 2.1 and Selectors Level 3</h3>
3560
3520
e.g. two consecutive <<ident-token>> s.
3561
3521
3562
3522
<li>
3563
- The <<unicode-range-token>> is now more restrictive,
3564
- and doesn't include non-sensical patterns that the 2.1 definition allowed.
3523
+ The <<unicode-range-token>> was removed,
3524
+ as it was low value and occasionally actively harmful.
3525
+ (''u+a { font-weight: bold; }'' was an invalid selector, for example...)
3526
+
3527
+ Instead, a <<urange>> production was added,
3528
+ based on token patterns.
3529
+ It is technically looser than what 2.1 allowed
3530
+ (any number of digits and ? characters),
3531
+ but not in any way that should impact its use in practice.
3565
3532
3566
3533
<li>
3567
3534
Apply the <a href="http://www.w3.org/TR/CSS21/syndata.html#unexpected-eof">EOF error handling rule</a> in the tokenizer
0 commit comments