@@ -283,6 +283,62 @@ Shorthand Properties</h2>
283
283
Declaring a <a>shorthand</a> property to be ''!important''
284
284
is equivalent to declaring all of its <a>sub-properties</a> to be ''!important'' .
285
285
286
+ <h3 id="aliasing">
287
+ Aliasing</h3>
288
+
289
+ Properties sometimes change names after being supported for a while,
290
+ such as vendor-prefixed properties being standardized.
291
+ The original name still needs to be supported for compatibility reasons,
292
+ but the new name is preferred.
293
+ To accomplish this, CSS defines two different ways of “aliasing” old syntax to new syntax.
294
+
295
+ <dl export>
296
+ <dt> <dfn lt="legacy name alias">legacy name aliases</dfn>
297
+ <dd>
298
+ When the old property’s syntax is identical to
299
+ or a subset of the value space of the new property’s syntax,
300
+ the two names are aliased with an operation on par with case-mapping:
301
+ at parse time, the old property is converted into the new property.
302
+ This conversion also applies in the CSSOM,
303
+ both for string arguments and property lookups:
304
+ requests for the old property
305
+ transparently transfer to the new property instead.
306
+
307
+ <div class=example highlight=js>
308
+ For example, if
309
+ <css> old-name</css> is a <a>legacy name alias</a> for <css> new-name</css> ,
310
+ <code> getComputedStyle(el).oldName</code>
311
+ will return the computed style of the <code> newName</code> property,
312
+ and <code> el.style.setPropertyValue("old-name", "value")</code>
313
+ will set the <css> new-name</css> property to <code> "value"</code> .
314
+ </div>
315
+
316
+ <dt> <dfn lt="legacy shorthand">legacy shorthands</dfn>
317
+ <dd>
318
+ When the old property has a distinct syntax from the new property,
319
+ the two names are aliased using the <a>shorthand</a> mechanism.
320
+ These shorthands are defined to be <a>legacy shorthands</a> ,
321
+ and their use is <em> deprecated</em> .
322
+ They otherwise behave exactly as regular shorthands,
323
+ except that the CSSOM will not use them
324
+ when serializing declarations. [[CSSOM]]
325
+
326
+ <div class=example>
327
+ For example, the 'page-break-*' properties
328
+ are <a>legacy shorthands</a> for the 'break-*' properties
329
+ (see [[css-break-3#page-break-properties]] ).
330
+
331
+ Setting 'page-break-before: always' expands to 'break-before: page' at parse time,
332
+ like other shorthands do.
333
+ Similarly, if 'break-before: page' is set,
334
+ calling <code> getComputedStyle(el).pageBreakBefore</code> will return <code> "always"</code> .
335
+ However, when serializing a style block
336
+ (see [[cssom-1#serializing-css-values]] ),
337
+ the 'page-break-before' property will never be chosen as the shorthand to serialize to,
338
+ regardless of whether it or 'break-before' was specified;
339
+ instead, 'break-before' will always be chosen.
340
+ </div>
341
+ </dl>
286
342
287
343
<h3 id="all-shorthand">
288
344
Resetting All Properties: the 'all' property</h3>
0 commit comments