@@ -68,7 +68,7 @@ Component value types</h3>
6868
6969 <ol>
7070 <li>
71- <a href="#keywords">keyword</a> values (such as '' auto'' , ''disc'' , etc.),
71+ <a href="#keywords">keyword</a> values (such as <css> auto</css> , ''disc'' , etc.),
7272 which appear literally, without quotes (e.g. <code> auto</code> )
7373
7474 <li>
@@ -307,7 +307,7 @@ Property value examples</h3>
307307 <td> ''3''
308308 <tr><td> 'text-align'
309309 <td> left | right | center | justify
310- <td> ''center''
310+ <td> ''text-align/ center''
311311 <tr><td> 'padding-top'
312312 <td> <length> | <percentage>
313313 <td> ''5%''
@@ -388,21 +388,21 @@ Author-defined Identifiers: the <<custom-ident>> type</h3>
388388 The <a>CSS-wide keywords</a> are not valid <<custom-ident>> s.
389389 The ''default'' keyword is reserved
390390 and is also not a valid <<custom-ident>> .
391+ Specifications using <<custom-ident>> must specify clearly
392+ what other keywords are excluded from <<custom-ident>> , if any--
393+ for example by saying that any pre-defined keywords in that property's value definition are excluded.
394+ Excluded keywords are excluded in all <a title="ASCII case-insensitive">ASCII case permutations</a> .
391395
392- Specifications using <<custom-ident>> should specify clearly
393- what other keywords are excluded from <<custom-ident>> —for
394- example by saying that any pre-defined keywords in that property's value definition are excluded.
395- As a general rule, an identifier that could be interpreted as a pre-defined keyword
396- in any position or multiplication of the <<custom-ident>> component value
397- is excluded,
398- and is invalid as a <<custom-ident>> matching to that component value
399- even in positions where its use would be technically unambiguous.
400- For example, if a keyword could be misparsed when specified
401- as the first item of a ''<<custom-ident>>+'' list,
402- it is invalid when specified in any position in that list.
403-
404- Excluded keywords are excluded in all ASCII case permutations.
396+ When parsing positionally-ambiguous keywords in a property value,
397+ a <<custom-ident>> production can only claim the keyword if no other unfulfilled production can claim it.
405398
399+ <div class="example">
400+ For example, the shorthand declaration ''animation: ease-in ease-out''
401+ is equivalent to the longhand declarations
402+ ''animation-timing-function: ease-in; animation-name: ease-out;'' .
403+ ''ease-in'' is claimed by the <<single-timing-function>> production belonging to 'animation-timing-function' ,
404+ leaving ''ease-out'' to be claimed by the <<custom-ident>> production belonging to 'animation-name' .
405+ </div>
406406
407407<h3 id="strings">
408408Quoted Strings: the <<string>> type</h3>
@@ -669,7 +669,7 @@ Relative lengths</h3>
669669Font-relative lengths: the ''em'', ''ex'', ''ch'', ''rem'' units</h4>
670670
671671 Aside from ''rem'' (which refers to the font-size of the root element),
672- the <dfn export>font-relative lengths</dfn> refer to the font metrics of the element on which they are used.
672+ the <dfn export id="font-relative length" >font-relative lengths</dfn> refer to the font metrics of the element on which they are used.
673673 The exception is when they occur in the value of the 'font-size' property itself,
674674 in which case they refer to the computed font metrics of the parent element
675675 (or the computed font metrics corresponding to the initial values of the 'font' property,
@@ -730,7 +730,7 @@ Viewport-percentage lengths: the ''vw'', ''vh'', ''vmin'', ''vmax'' units</h4>
730730 <a href="http://www.w3.org/TR/CSS21/visudet.html#containing-block-details">initial containing block</a> .
731731 When the height or width of the initial containing block is changed,
732732 they are scaled accordingly.
733- However, when the value of 'overflow' on the root element is ''auto'' ,
733+ However, when the value of 'overflow' on the root element is ''overflow/ auto'' ,
734734 any scroll bars are assumed not to exist.
735735 <span class='note'> Note that the initial containing block's size is affected by the presence of scrollbars on the viewport.</span>
736736
@@ -1012,7 +1012,7 @@ Images: the <<image>> type</h3>
10121012 The <<position>> data type is defined in [[!CSS3BG]] .
10131013 UAs that support CSS Backgrounds & Borders Level 3 or its successor must interpret <<position>> as defined therein.
10141014
1015- <h2 id="functional-notation ">
1015+ <h2 id="functional-notations ">
10161016Functional Notations</h2>
10171017
10181018 A <dfn>functional notation</dfn> is a type of component value
@@ -1223,7 +1223,7 @@ Computed Value</h4>
12231223 e.g. ''calc(100% - 100% + 1em)'' resolves to ''calc(0% + 1em)'' ,
12241224 not to ''calc(1em)'' .
12251225 If there are special rules for computing percentages in a value
1226- (e.g. <a href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property">the ' height' property</a> ),
1226+ (e.g. <a href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property">the <css> height</css> property</a> ),
12271227 they apply whenever a ''calc()'' expression contains percentages.
12281228
12291229 Note: Thus, the computed value of a ''calc()'' expression can be represented
@@ -1260,7 +1260,7 @@ Computed Value</h4>
12601260 math expressions involving percentages for widths and heights on
12611261 table columns, table column groups, table rows, table row groups, and table cells
12621262 in both auto and fixed layout tables
1263- MAY be treated as if ''auto'' had been specified.
1263+ MAY be treated as if ''width/ auto'' had been specified.
12641264
12651265
12661266<h4 id='calc-range'>
@@ -1298,7 +1298,7 @@ Toggling Between Values: ''toggle()''</h3>
12981298 <div class='example'>
12991299 The following example cycles markers for nested lists,
13001300 so that a top level list has ''disc'' -shaped markers,
1301- but nested lists use ''circle'' , then ''square'' , then ''box'' ,
1301+ but nested lists use ''list-style-type/ circle'' , then ''square'' , then ''box'' ,
13021302 and then repeat through the list of marker shapes,
13031303 starting again (for the 5th list deep) with ''disc'' .
13041304
@@ -1354,7 +1354,7 @@ Toggling Between Values: ''toggle()''</h3>
13541354 not a particular serialization [[!CSS21]] ,
13551355 so comparison between computed values should always be unambiguous and have the expected result.
13561356 For example,
1357- a Level 2 <a href="http://www.w3.org/TR/CSS21/colors.html#propdef-background-position">' background-position' </a> computed value
1357+ a Level 2 <a property spec=css21> background-position</a> computed value
13581358 is just two offsets, each represented as an absolute length or a percentage,
13591359 so the declarations ''background-position: top center'' and ''background-position: 50% 0%''
13601360 produce identical computed values.
@@ -1412,7 +1412,7 @@ Ian's proposal:
14121412 In CSS3, the ''attr()'' expression can return many different types.
14131413 The ''attr()'' expression cannot return everything,
14141414 for example it cannot do counters, named strings, quotes,
1415- or keyword values such as '' auto'' , '' nowrap'' , or '' baseline'' .
1415+ or keyword values such as <css> auto</css> , <css> nowrap</css> , or <css> baseline</css> .
14161416 This is intentional,
14171417 as the intent of the ''attr()'' expression is not to make it possible to describe a presentational language's formatting using CSS,
14181418 but to enable CSS to take semantic data into account.
@@ -1464,14 +1464,14 @@ Ian's proposal:
14641464 Note that the default value need not be of the type given,
14651465 if the attr() expression is the entire property value.
14661466 For instance, if the type required of the attribute by the author is ''px'' ,
1467- the default could still be '' auto'' ,
1467+ the default could still be <css> auto</css> ,
14681468 like in ''width: attr(size px, auto);'' .
14691469
14701470 If the attr() is used alongside other values to form the full property value,
14711471 however, the default value must match the attr()'s type.
14721472 For example, ''box-shadow: attr(size px, inset) 5px 10px blue;'' is invalid,
14731473 even though it would create a valid declaration if you substituted the attr() expression
1474- with either a ''px'' length <em> or</em> the ''inset'' keyword.
1474+ with either a ''px'' length <em> or</em> the ''box-shadow/ inset'' keyword.
14751475 </div>
14761476
14771477 If the specified attribute exists on the element,
@@ -1790,7 +1790,7 @@ Changes</h2>
17901790 <li> Made undefined namespace prefixes in ''attr()'' invalidate the function.
17911791 <li> Per <a href="http://lists.w3.org/Archives/Public/www-style/2013Jan/0616.html">WG resolution</a> ,
17921792 made <a href="#viewport-relative-lengths">viewport-percentage units</a> respect scrollbars on the viewport
1793- unless 'overflow' is ''auto'' (in which case they ignore the presence of scrollbars).
1793+ unless 'overflow' is ''overflow/ auto'' (in which case they ignore the presence of scrollbars).
17941794 <li> Deferred exact definition of <a href="#viewport-relative-lengths">viewport-percentage units</a>
17951795 in paged media to <a href="http://www.w3.org/TR/css3-page/">CSS Paged Media</a> .
17961796 <li> Added back the <<custom-ident>> term as a convenience notation, so that other specs can refer to it.
0 commit comments