css3-ui/Overview.html

Thu, 07 Feb 2013 23:25:50 -0800

author
L. David Baron <dbaron@dbaron.org>
date
Thu, 07 Feb 2013 23:25:50 -0800
changeset 7401
0df32ea51959
parent 7354
2d69376aaded
child 7414
9839b4934df4
permissions
-rw-r--r--

[css3-ui] Add "Animatable:" lines to propdef tables.

Note that the line for nav-index matches the current value, which may
be incorrect (number vs. integer).

Required manual adjustment for preprocessor (pre- and post-processing)
to deal with New Value(s): line for 'content' property.

The Animatable lines are as resolved in Tucson face-to-face at
2013-02-04 11:40:47 -0700, and edited by me per discussion starting at
2013-02-05 11:11:38 -0700.

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
     2 "http://www.w3.org/TR/html4/strict.dtd">
     4 <html>
     5  <head profile="http://dublincore.org/documents/2008/08/04/dc-html/ ">
     6   <meta content="text/html; charset=utf-8" http-equiv=Content-Type>
     7   <meta content="text/css" http-equiv=Content-Style-Type>
     8   <meta content=en http-equiv=Content-Language>
     9   <meta content="Tantek Çelik" lang=tr name=author>
    10   <title>CSS Basic User Interface Module Level 3 (CSS3 UI)</title>
    12   <link href="http://purl.org/dc/terms/" rel=schema.dcterms>
    13   <link href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"
    14    rel=dcterms.rights>
    15   <meta content="CSS Basic User Interface Module Level 3 (CSS3 UI)"
    16    name=dcterms.title>
    17   <meta content=text name=dcterms.type>
    18   <meta content=2013-02-08 name=dcterms.issued>
    19   <meta content="http://dev.w3.org/csswg/css3-ui/" name=dcterms.creator>
    20   <meta content=W3C name=dcterms.publisher>
    21   <meta content="http://www.w3.org/TR/2013/ED-css3-ui-20130208/"
    22    name=dcterms.identifier>
    23   <link href="../default.css" rel=stylesheet title=Default type="text/css">
    24   <style type="text/css">
    25 .subtoc ul,.subtoc ol { list-style-type: none }
    26 ol.objectives { list-style: decimal }
    27 ol.issues { list-style: decimal }
    28 .html4ss { font-size:90%}
    29 h1 {font-size:200%; clear:both}
    30 h2 {font-size:170%; clear:both}
    31 h3 {font-size:150%; clear:both}
    32 h4 {font-size:130%}
    33 h5 {font-size:120%}
    34 h6 {font-size:110%}
    35 h1+h2 {page-break-before: avoid}
    36 h2 {page-break-before: always}
    37 dd p:first-child { margin-top:0 }
    39 </style>
    40   <link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel=stylesheet
    41    type="text/css"><!-- toggle to W3C-WD for TR publication, W3C-ED for editing -->
    43  <body class=h-entry>
    44   <div class=head> <a href="http://www.w3.org/"><img alt=W3C height=48
    45    src="http://www.w3.org/Icons/w3c_home" width=72> </a>
    46    <h1 class=p-name>CSS Basic User Interface Module Level 3 (CSS3 UI)</h1>
    48    <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft <time
    49     class=dt-updated datetime=20130208> 8 February 2013</time></h2>
    51    <dl>
    52     <dt>This version:</dt>
    53     <!-- TR "This version". Update "WD" below as needed to CR/PR/REC -->
    54     <!-- <dd><a href="http://www.w3.org/TR/2013/WD-css3-ui-20130208/">
    55     http://www.w3.org/TR/2013/WD-css3-ui-20130208/</a>
    56   </dd> -->
    57     <!-- editor's draft "This version" -->
    59     <dd><a class=u-url href="http://dev.w3.org/csswg/css3-ui/">
    60      http://dev.w3.org/csswg/css3-ui/</a>
    62     <dt>Latest version:
    64     <dd><a
    65      href="http://www.w3.org/TR/css3-ui/">http://www.w3.org/TR/css3-ui/</a>
    67     <dt>Editor's draft:
    69     <dd><a
    70      href="http://dev.w3.org/csswg/css3-ui/">http://dev.w3.org/csswg/css3-ui/</a>
    72     <dt>Previous version:
    74     <dd><a href="http://www.w3.org/TR/2012/WD-css3-ui-20120117/"
    75      rel=previous>http://www.w3.org/TR/2012/WD-css3-ui-20120117/</a>
    77     <dt>Issues list:
    79     <dd><a href="http://wiki.csswg.org/spec/css3-ui"
    80      rel=issues>http://wiki.csswg.org/spec/css3-ui</a>
    82     <dt>Discussion:
    84     <dd><a
    85      href="mailto:www-style@w3.org?subject=%5Bcss3-ui%5D%20feedback">www-style@w3.org</a>
    86      with subject line “<kbd>[css3-ui] <var>… message topic
    87      …</var></kbd>” (<a
    88      href="http://lists.w3.org/Archives/Public/www-style/"
    89      rel=discussion>archives</a>)
    91     <dt>Editor:
    93     <dd class="p-author h-card vcard"> <a class="p-name fn u-url url"
    94      href="http://tantek.com" lang=tr rel=author> Tantek Çelik</a> (<a
    95      class="company h-org org" href="http://www.mozilla.org/">Mozilla
    96      Foundation</a>, and before at <a
    97      href="http://www.microsoft.com/">Microsoft Corporation</a>) &lt;<a
    98      class="u-email email"
    99      href="mailto:tantek@cs.stanford.edu">tantek@cs.stanford.edu</a>&gt;
   100    </dl>
   101    <!--begin-copyright-->
   102    <p class=copyright><a
   103     href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"
   104     rel=license>Copyright</a> © 2013 <a href="http://www.w3.org/"><abbr
   105     title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a
   106     href="http://www.csail.mit.edu/"><abbr
   107     title="Massachusetts Institute of Technology">MIT</abbr></a>, <a
   108     href="http://www.ercim.eu/"><abbr
   109     title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
   110     <a href="http://www.keio.ac.jp/">Keio</a>, <a
   111     href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved. W3C <a
   112     href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
   113     <a
   114     href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
   115     and <a
   116     href="http://www.w3.org/Consortium/Legal/copyright-documents">document
   117     use</a> rules apply.</p>
   118    <!--end-copyright-->
   119    <hr title="Separator for header">
   120   </div>
   122   <h2 class="no-num no-toc" id=abstract>Abstract</h2>
   124   <p>This section is <em>informative</em>.
   126   <p>CSS (Cascading Style Sheets) is a language for describing the rendering
   127    of HTML and XML documents on screen, on paper, in speech, etc. It uses
   128    various selectors, properties and values to style basic user interface
   129    elements in a document. <span class=p-summary> This specification
   130    describes those user interface related selectors, properties and values
   131    that are proposed for CSS level 3 to style HTML and XML (including XHTML
   132    and XForms). It includes and extends user interface related features from
   133    the selectors, properties and values of CSS level 2 revision 1 and
   134    Selectors specifications. </span>
   136   <h2 class="no-num no-toc" id=status style="page-break-before:auto">Status
   137    of this document</h2>
   138   <!--begin-status-->
   140   <p>This is a public copy of the editors' draft. It is provided for
   141    discussion only and may change at any moment. Its publication here does
   142    not imply endorsement of its contents by W3C. Don't cite this document
   143    other than as work in progress.
   145   <p>The (<a
   146    href="http://lists.w3.org/Archives/Public/www-style/">archived</a>) public
   147    mailing list <a
   148    href="mailto:www-style@w3.org?Subject=%5Bcss3-ui%5D%20PUT%20SUBJECT%20HERE">
   149    www-style@w3.org</a> (see <a
   150    href="http://www.w3.org/Mail/Request">instructions</a>) is preferred for
   151    discussion of this specification. When sending e-mail, please put the text
   152    “css3-ui” in the subject, preferably like this:
   153    “[<!---->css3-ui<!---->] <em>…summary of comment…</em>”
   155   <p>This document was produced by the <a href="/Style/CSS/members">CSS
   156    Working Group</a> (part of the <a href="/Style/">Style Activity</a>).
   158   <p>This document was produced by a group operating under the <a
   159    href="/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent
   160    Policy</a>. W3C maintains a <a href="/2004/01/pp-impl/32061/status"
   161    rel=disclosure>public list of any patent disclosures</a> made in
   162    connection with the deliverables of the group; that page also includes
   163    instructions for disclosing a patent. An individual who has actual
   164    knowledge of a patent which the individual believes contains <a
   165    href="/Consortium/Patent-Policy-20040205/#def-essential">Essential
   166    Claim(s)</a> must disclose the information in accordance with <a
   167    href="/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the
   168    W3C Patent Policy</a>.</p>
   169   <!--end-status-->
   171   <p>This specification is a <strong>Last Call Working Draft</strong>,
   172    although it was previously a Candidate Recommendation. It has been
   173    returned to Last Call Working Draft because this draft removes features
   174    that were not implemented sufficiently to advance to Proposed
   175    Recommendation, and had not been previously listed as at risk, as <a
   176    href="http://www.w3.org/2005/10/Process-20051014/tr.html#cfi">required</a>
   177    by the W3C Process. This draft also adds a couple of new properties and
   178    values. See <a href="#changes">Appendix C. Changes</a> for further
   179    details. <!-- This specification may advance directly to Proposed
   180 Recommendation following the last call, depending on comments and
   181 implementation reports. -->
   182    All persons are encouraged to review this document and send comments to
   183    the <a href="http://lists.w3.org/Archives/Public/www-style/">www-style
   184    mailing list</a> as described above. The <strong>deadline for
   185    comments</strong> is four weeks after the date of publication in the
   186    header or 14 February 2012, whichever is sooner.
   188   <h3 class="no-num no-toc" id=crec>Candidate Recommendation Exit Criteria</h3>
   190   <p>For this specification to enter the Proposed Recommendation stage, the
   191    following conditions shall be met:
   193   <ol>
   194    <li>
   195     <p>There must be at least two interoperable implementations for every
   196      feature. For the purposes of this criterion, we define the following
   197      terms:
   199     <dl>
   200      <dt>feature
   202      <dd>
   203       <p> A section or subsection of the specification.
   205      <dt>interoperable
   207      <dd>
   208       <p>passing the respective test cases in the test suite, or, if the
   209        implementation is not a web browser, equivalent tests. Every relevant
   210        test in the test suite should have an equivalent test created if such
   211        a user agent (UA) is to be used to claim interoperability. In addition
   212        if such a UA is to be used to claim interoperability, then there must
   213        one or more additional UAs which can also pass those equivalent tests
   214        in the same way for the purpose of interoperability. The equivalent
   215        tests must be made publicly available for the purposes of peer review.
   217      <dt>implementation
   219      <dd>
   220       <p>a user agent which:
   222       <ol class=inline>
   223        <li>implements the feature.
   225        <li>is available (i.e. publicly downloadable or available through some
   226         other public point of sale mechanism). This is the "show me"
   227         requirement.
   229        <li>is shipping (i.e. development, private or unofficial versions are
   230         insufficient).
   232        <li>is not experimental (i.e. is intended for a wide audience and
   233         could be used on a daily basis).
   234       </ol>
   235     </dl>
   237    <li>
   238     <p>A minimum of six months of the CR period must have elapsed. This is to
   239      ensure that enough time is given for any remaining major errors to be
   240      caught.
   242    <li>
   243     <p>The CR period will be extended if implementations are slow to appear.
   245    <li>
   246     <p>Features that are <em>at risk</em> (see the below list) will be
   247      dropped (thus reducing the list of "all" features mentioned above) if
   248      two or more interoperable implementations of those features are not
   249      found by the end of the CR period, or if sufficient and adequate tests
   250      (by judgment of the Working Group) have not been produced for those
   251      features by the end of the CR period.
   252   </ol>
   254   <p>A <a href="/Style/CSS/Test/">test suite</a> and a <a
   255    href="/Style/css3-updates/css3-ui-implementations">report on
   256    implementations</a> will be provided before the document becomes a
   257    Proposed Recommendation.
   259   <h3 class="no-num no-toc" id=atrisk>Features at risk</h3>
   261   <p>The Working Group has identified the following features as at risk of
   262    being removed from CSS Basic User Interface Module Level 3 when exiting
   263    CR. Implementors are urged to implement these features, if they wish to
   264    see these features remain in this specification. All other features are
   265    either defined in a normative reference (e.g. CSS 2.1 <a href="#CSS21"
   266    rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a> or Selectors <a
   267    href="#SELECT" rel=biblioentry>[SELECT]<!--{{!SELECT}}--></a>) or are
   268    believed to have two or more implementations, and thus will not be dropped
   269    without returning to last call.
   271   <ul><!-- 
   272  At risk due to only one implementation, or obsolete dependency:
   273  XForms is defunct on the web.
   274  <li>XForms needs:	:default :valid :invalid :in-range :out-of-range :required :optional :read-only :read-write ::value ::choices ::repeat-item ::repeat-index</li>
   276  <li>box-sizing: padding-box - only FF supports in prefixed version</li>
   278  <li>ime-mode: new - not sure about IE5+ vs FF3+ interop
   279  </li>
   281  <li>nav-index, nav-up, nav-down, nav-right, nav-left, properties
   282  		implemented for sure only by Opera, http://www.opera.com/docs/specs/presto22/#css
   283  		possibly obsolete: Tasman v1 internal implementation
   284  		possibly current: MSTV Tasman
   285  		required (depended on) by non-web DVB-HTML, ATSC standards
   286  		 - unknown if any DVB-HTML or ATSC simulators 
   287  </li> 
   289  Not at risk:
   290  <li>CSS2.1:  		:hover :active :focus</li>
   291  <li>Selectors:		:enabled :disabled :checked</li>
   292  <li>:indeterminate implemented by FF3.6, IE9, Opera 10.6, Saf3</li>
   294  <li>box-sizing implemented by IE5/Mac, Opera
   295  		-moz-box-sizing implemented by Mozilla
   296  </li>
   297  <li>outline, outline-width, outline-color, outline-style all in CSS 2.1</li>
   298  <li>outline-offset property
   299  		implemented by Safari 1.2
   300  </li>
   301  <li>cursor property:
   302  		CSS2.1: auto | default | help | pointer | wait | crosshair | text | 
   303 e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize
   304 		IE5/Mac implements: none | progress | cell
   305 		IE6/Windows implements: <uri> | progress | not-allowed | no-drop | vertical-text | all-scroll | col-resize | row-resize | move | 
   306 		Mozilla implements: progress | cell(as -moz-cell) | alias(as -moz-alias) | copy(as -moz-copy) | context-menu(as -moz-context-menu) | 
   307 		freedesktop.org copied all the cursors from the CSS3-UI LC Working Draft
   308 			by FredrikHoeglund - 14 Oct 2003 
   309 			http://freedesktop.org/Standards/cursor-spec
   310  </li>
   311  <li>'cursor' property values: ew-resize | ns-resize | nesw-resize | nwse-resize
   312     implemented by Firefox and Safari
   313  </li>
   314  <li>'resize' property
   315     implemented by Firefox 4 and Safari
   316  </li>
   317  -->
   319    <li>::value ::choices ::repeat-item ::repeat-index pseudo-elements
   321    <li>‘<a href="#box-sizing0"><code
   322     class=property>box-sizing</code></a>’ property value: padding-box
   324    <li>‘<a href="#content"><code class=property>content</code></a>’
   325     property value: icon
   327    <li>‘<a href="#icon"><code class=property>icon</code></a>’ property
   329    <li>‘<a href="#ime-mode"><code class=property>ime-mode</code></a>’
   330     property
   332    <li>‘<a href="#nav-index0"><code class=property>nav-index</code></a>’,
   333     ‘<a href="#nav-up"><code class=property>nav-up</code></a>’, ‘<a
   334     href="#nav-down"><code class=property>nav-down</code></a>’, ‘<a
   335     href="#nav-right"><code class=property>nav-right</code></a>’, ‘<a
   336     href="#nav-left"><code class=property>nav-left</code></a>’ properties
   338    <li>‘<a href="#text-overflow0"><code
   339     class=property>text-overflow</code></a>’ property value: &lt;string&gt;
   341    <li>‘<a href="#text-overflow0"><code
   342     class=property>text-overflow</code></a>’ property 2-value syntax and
   343     definition.
   344   </ul>
   346   <h2 class="no-num no-toc" id=summary>Overview</h2>
   348   <p>This section is <em>informative</em>.
   350   <p>This document is one of the "modules" for the upcoming CSS3
   351    specification. It not only describes the user interface related properties
   352    and values that already exist in <a
   353    href="http://www.w3.org/TR/REC-CSS1">CSS1</a> <a href="#CSS1"
   354    rel=biblioentry>[CSS1]<!--{{CSS1}}--></a> and <a
   355    href="http://www.w3.org/TR/CSS21">CSS2.1</a> <a href="#CSS21"
   356    rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, but introduces new
   357    properties and values for CSS3 as well. The Working Group doesn't expect
   358    that all implementations of CSS3 will implement all properties or values.
   359    Instead, there will probably be a small number of variants of CSS3,
   360    so-called "profiles".
   362   <p>This document is the result of the merging of relevant parts of the
   363    following Recommendations and Working Drafts, and the addition of some new
   364    features.
   366   <ul>
   367    <li>Cascading Style Sheets, level 2, revision 1 <a href="#CSS21"
   368     rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
   370    <li><a href="http://www.w3.org/TR/2000/WD-css3-userint-20000216">User
   371     Interface for CSS3 (16 February 2000)</a> <a href="#CSSUI"
   372     rel=biblioentry>[CSSUI]<!--{{CSSUI}}--></a>
   373   </ul>
   375   <p>This specification contains:
   377   <ul>
   378    <li>Pseudo-classes and pseudo-elements to style user interface states and
   379     element fragments respectively.
   381    <li>Additions to the user interface features in <a
   382     href="http://www.w3.org/TR/CSS21">CSS2.1</a>.
   384    <li>Directional focus navigation properties.
   386    <li>A mechanism to allow the styling of elements as icons for
   387     accessibility.
   388   </ul>
   390   <h2 class="no-num no-toc" id=contents>Table of contents</h2>
   391   <!--begin-toc-->
   393   <ul class=toc>
   394    <li><a href="#intro"><span class=secno>1. </span>Introduction</a>
   395     <ul class=toc>
   396      <li><a href="#purpose"><span class=secno>1.1. </span>Purpose</a>
   397     </ul>
   399    <li><a href="#conformance"><span class=secno>2. </span>Conformance</a>
   400     <ul class=toc>
   401      <li><a href="#definitions"><span class=secno>2.1. </span>Definitions</a>
   403      <li><a href="#classes-of-products"><span class=secno>2.2. </span>Classes
   404       of products</a>
   406      <li><a href="#extensions"><span class=secno>2.3. </span>Extensions</a>
   407     </ul>
   409    <li><a href="#dependencies-on-other-modules"><span class=secno>3.
   410     </span>Dependencies on other modules</a>
   412    <li><a href="#user-interface-selectors"><span class=secno>4. </span>User
   413     Interface Selectors</a>
   414     <ul class=toc>
   415      <li><a href="#pseudo-classes"><span class=secno>4.1. </span>User
   416       interface states: pseudo-classes</a>
   417       <ul class=toc>
   418        <li><a href="#active"><span class=secno>4.1.1. </span>:active
   419         details</a>
   421        <li><a href="#indeterminate"><span class=secno>4.1.2. </span> The
   422         indeterminate-value pseudo-class ‘<code
   423         class=css>:indeterminate</code>’</a>
   425        <li><a href="#pseudo-default"><span class=secno>4.1.3.
   426         </span>:default</a>
   428        <li><a href="#pseudo-validity"><span class=secno>4.1.4.
   429         </span><span>:valid</span> and <span>:invalid</span></a>
   431        <li><a href="#pseudo-range"><span class=secno>4.1.5.
   432         </span><span>:in-range</span> and <span>:out-of-range</span></a>
   434        <li><a href="#pseudo-required-value"><span class=secno>4.1.6.
   435         </span><span>:required</span> and <span>:optional</span></a>
   437        <li><a href="#pseudo-ro-rw"><span class=secno>4.1.7.
   438         </span><span>:read-only</span> and <span>:read-write</span></a>
   439       </ul>
   441      <li><a href="#pseudo-elements"><span class=secno>4.2. </span>User
   442       interface element fragments: pseudo-elements</a>
   443       <ul class=toc>
   444        <li><a href="#pseudo-value"><span class=secno>4.2.1.
   445         </span>::value</a>
   447        <li><a href="#pseudo-choices"><span class=secno>4.2.2.
   448         </span>::choices</a>
   450        <li><a href="#pseudo-repeat-item"><span class=secno>4.2.3.
   451         </span>::repeat-item</a>
   453        <li><a href="#pseudo-repeat-index"><span class=secno>4.2.4.
   454         </span>::repeat-index</a>
   455       </ul>
   456     </ul>
   458    <li><a href="#element-icons"><span class=secno>5. </span>Element icons</a>
   460     <ul class=toc>
   461      <li><a href="#content-property-addition"><span class=secno>5.1.
   462       </span><span class=property>‘<code
   463       class=property>content</code>’</span> property addition</a>
   465      <li><a href="#icon-property"><span class=secno>5.2. </span><span
   466       class=property>‘<code class=property>icon</code>’</span>
   467       property</a>
   468     </ul>
   470    <li><a href="#box-model-addition"><span class=secno>6. </span>Box Model
   471     addition</a>
   472     <ul class=toc>
   473      <li><a href="#box-sizing"><span class=secno>6.1. </span><span
   474       class=property>‘<code class=property>box-sizing</code>’</span>
   475       property</a>
   476     </ul>
   478    <li><a href="#outline-properties"><span class=secno>7. </span>Outline
   479     properties</a>
   480     <ul class=toc>
   481      <li><a href="#outline"><span class=secno>7.1. </span><span
   482       class=property>‘<code class=property>outline</code>’</span>
   483       property</a>
   485      <li><a href="#outline-width"><span class=secno>7.2. </span><span
   486       class=property>‘<code class=property>outline-width</code>’</span>
   487       property</a>
   489      <li><a href="#outline-style"><span class=secno>7.3. </span><span
   490       class=property>‘<code class=property>outline-style</code>’</span>
   491       property</a>
   493      <li><a href="#outline-color"><span class=secno>7.4. </span><span
   494       class=property>‘<code class=property>outline-color</code>’</span>
   495       property</a>
   497      <li><a href="#outline-offset"><span class=secno>7.5. </span><span
   498       class=property>‘<code class=property>outline-offset</code>’</span>
   499       property</a>
   500     </ul>
   502    <li><a href="#resizing-amp-overflow"><span class=secno>8. </span>Resizing
   503     &amp; Overflow</a>
   504     <ul class=toc>
   505      <li><a href="#resize"><span class=secno>8.1. </span><span
   506       class=property>‘<code class=property>resize</code>’</span>
   507       property</a>
   509      <li><a href="#text-overflow"><span class=secno>8.2. </span> Overflow
   510       Ellipsis: the ‘<code class=property>text-overflow</code>’
   511       property</a>
   512     </ul>
   514    <li><a href="#pointing-devices-and-keyboards"><span class=secno>9.
   515     </span>Pointing Devices and Keyboards</a>
   516     <ul class=toc>
   517      <li><a href="#pointer-interaction"><span class=secno>9.1. </span>Pointer
   518       interaction</a>
   519       <ul class=toc>
   520        <li><a href="#cursor"><span class=secno>9.1.1. </span><span
   521         class=property>‘<code class=property>cursor</code>’</span>
   522         property</a>
   523       </ul>
   525      <li><a href="#keyboard"><span class=secno>9.2. </span>Keyboard
   526       control</a>
   527       <ul class=toc>
   528        <li><a href="#nav-index"><span class=secno>9.2.1. </span>Sequential
   529         navigation order: the <span class=property>‘<code
   530         class=property>nav-index</code>’</span> property</a>
   532        <li><a href="#nav-dir"><span class=secno>9.2.2. </span>Directional
   533         focus navigation: the <span class=property>‘<code
   534         class=property>nav-up</code>’</span>, <span class=property>‘<code
   535         class=property>nav-right</code>’</span>, <span
   536         class=property>‘<code class=property>nav-down</code>’</span>,
   537         <span class=property>‘<code
   538         class=property>nav-left</code>’</span> properties</a>
   540        <li><a href="#input-method-editor"><span class=secno>9.2.3.
   541         </span>Input method editor: the <span class=property>‘<code
   542         class=property>ime-mode</code>’</span> property</a>
   543       </ul>
   544     </ul>
   546    <li class=no-num><a href="#acknowledgments">Appendix A.
   547     Acknowledgments</a>
   549    <li class=no-num><a href="#references">Appendix B. Bibiliography</a>
   551    <li class=no-num><a href="#changes">Appendix C. Changes</a>
   552     <ul class=toc>
   553      <li class=no-num><a href="#changes-list">List of substantial changes</a>
   554     </ul>
   556    <li class=no-num><a
   557     href="#appendix-d.-default-style-sheet-addition">Appendix D. Default
   558     style sheet additions for HTML</a>
   560    <li class=no-num><a href="#appendix-e-test-suite">Appendix E: Test
   561     Suite</a>
   563    <li class=no-num><a href="#index">Index</a>
   565    <li class=no-num><a href="#property-index">Property index</a>
   566   </ul>
   567   <!--end-toc-->
   569   <hr>
   571   <h2 id=intro><span class=secno>1. </span>Introduction</h2>
   573   <p> CSS3 is a set of modules, divided up and profiled in order to simplify
   574    the specification, and to allow implementors the flexibility of supporting
   575    the particular modules appropriate for their implementations.
   577   <p> This module describes selectors and CSS properties which enable authors
   578    to style user interface related states, element fragments, properties and
   579    values.
   581   <p><a href="http://www.w3.org/TR/REC-CSS1#anchor-pseudo-classes">Section
   582    2.1 of CSS1</a> <a href="#CSS1" rel=biblioentry>[CSS1]<!--{{CSS1}}--></a>
   583    and <a href="http://www.w3.org/TR/CSS2/ui.html">Chapter 18 of CSS2</a> <a
   584    href="#CSS2" rel=biblioentry>[CSS2]<!--{{CSS2}}--></a> introduced several
   585    user interface related pseudo-classes, properties and values. <a
   586    href="http://www.w3.org/TR/css3-selectors/#UIstates">Section 6.6.4 of
   587    Selectors</a> <a href="#SELECT"
   588    rel=biblioentry>[SELECT]<!--{{!SELECT}}--></a> also describes several
   589    additional user interface related pseudo-classes (and one pseudo-element).
   591   <p> This Working Draft extends them to provide the ability, through CSS, to
   592    style elements based upon additional user interface states, to style
   593    fragments of user interface elements, and to alter the dynamic
   594    presentation of elements in ways previously only available through
   595    specific HTML4/XHTML1 elements and attributes.
   597   <h3 id=purpose><span class=secno>1.1. </span>Purpose</h3>
   599   <p>The purpose of this specification is to achieve the following
   600    objectives:
   602   <ul>
   603    <li>Extend the user interface features in CSS2.1.
   605    <li>Provide additional CSS mechanisms to augment or replace other dynamic
   606     presentation related features in HTML4/XHTML1.
   608    <li>Introduce directional navigation properties to assist in the
   609     construction of user interfaces which make use of a directional
   610     navigation model.
   612    <li>Introduce properties and values to specify icon presentations for
   613     elements to enhance accessibility.
   614   </ul>
   616   <h2 id=conformance><span class=secno>2. </span>Conformance</h2>
   618   <h3 id=definitions><span class=secno>2.1. </span>Definitions</h3>
   620   <p>The key words <span class=index-def id=must title=MUST>"MUST"</span>,
   621    <span class=index-def id=must-not title="MUST NOT">"MUST NOT"</span>,
   622    <span class=index-def id=required title=REQUIRED>"REQUIRED"</span>, <span
   623    class=index-def id=shall title=SHALL>"SHALL"</span>, <span class=index-def
   624    id=shall-not title="SHALL NOT">"SHALL NOT"</span>, <span class=index-def
   625    id=should title=SHOULD>"SHOULD"</span>, <span class=index-def
   626    id=should-not title="SHOULD NOT">"SHOULD NOT"</span>, <span
   627    class=index-def id=recommended title=RECOMMENDED>"RECOMMENDED"</span>,
   628    <span class=index-def id=may title=MAY>"MAY"</span>, and <span
   629    class=index-def id=optional title=OPTIONAL>"OPTIONAL"</span> in this
   630    document are to be interpreted as described in RFC 2119 (see <a
   631    href="#RFC2119" rel=biblioentry>[RFC2119]<!--{{!RFC2119}}--></a>).
   632    However, for readability, these words do not typically appear in all
   633    uppercase letters in this specification.
   635   <p>Additional key words, e.g. "User agent (UA)", are <a
   636    href="http://www.w3.org/TR/CSS21/conform.html#defs">defined by CSS 2.1</a>
   637    (<a href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, section
   638    3.1).
   640   <h3 id=classes-of-products><span class=secno>2.2. </span>Classes of
   641    products</h3>
   643   <p>The following classes of products (many of which overlap) should
   644    consider implementing this specification:
   646   <ul>
   647    <li>Web browsers
   649    <li>User agents that implement one or more of the following types of
   650     content: HTML (<a href="#HTML401"
   651     rel=biblioentry>[HTML401]<!--{{HTML401}}--></a>, <a href="#HTML5"
   652     rel=biblioentry>[HTML5]<!--{{HTML5}}--></a>), XHTML (<a href="#XHTML10"
   653     rel=biblioentry>[XHTML10]<!--{{XHTML10}}--></a>, <a href="#XHTML11"
   654     rel=biblioentry>[XHTML11]<!--{{XHTML11}}--></a>), XForms (e.g. <a
   655     href="#XFORMS11" rel=biblioentry>[XFORMS11]<!--{{XFORMS11}}--></a>), SVG
   656     (e.g. <a href="#SVG10" rel=biblioentry>[SVG10]<!--{{SVG10}}--></a>, <a
   657     href="#SVG11" rel=biblioentry>[SVG11]<!--{{SVG11}}--></a>) or other
   658     content languages that contain forms controls or are intended for user
   659     interaction
   661    <li>User agents that implement one or more levels or modules of CSS (e.g.
   662     <a href="#CSS1" rel=biblioentry>[CSS1]<!--{{CSS1}}--></a>, <a
   663     href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>)
   664   </ul>
   666   <h3 id=extensions><span class=secno>2.3. </span>Extensions</h3>
   668   <p>This specification does not define any explicit extension mechanisms. If
   669    an implementation needs to extend the functionality of this specification,
   670    it must follow any/all guidelines and requirements of extensions as
   671    defined in CSS2.1, e.g. <a
   672    href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">Vendor-specific
   673    extensions</a> (<a href="#CSS21"
   674    rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, section 4.1.2.1).
   676   <h2 id=dependencies-on-other-modules><span class=secno>3.
   677    </span>Dependencies on other modules</h2>
   679   <p> This CSS3 module depends on the following other specifications.
   681   <ul>
   682    <li><a href="#SELECT" rel=biblioentry>[SELECT]<!--{{!SELECT}}--></a>
   684    <li><a href="#CSS3COLOR"
   685     rel=biblioentry>[CSS3COLOR]<!--{{!CSS3COLOR}}--></a>
   687    <li><a href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
   688   </ul>
   689   <!--
   690 <p>It has non-normative (informative) references to the following
   691 other specifications:</p>
   692 <ul>
   693 </ul>
   694 -->
   696   <p> The following work is related to the CSS Basic User Interface Module
   697    Level 3 (CSS3 Basic UI).
   699   <ul>
   700    <li><a href="#HTML401" rel=biblioentry>[HTML401]<!--{{HTML401}}--></a>
   702    <li><a href="#HTML5" rel=biblioentry>[HTML5]<!--{{HTML5}}--></a>
   704    <li><a href="#UAAG10" rel=biblioentry>[UAAG10]<!--{{UAAG10}}--></a>
   706    <li><a href="#XML10" rel=biblioentry>[XML10]<!--{{XML10}}--></a>
   708    <li><a href="#XHTML10" rel=biblioentry>[XHTML10]<!--{{XHTML10}}--></a>
   710    <li><a href="#XHTML11" rel=biblioentry>[XHTML11]<!--{{XHTML11}}--></a>
   712    <li><a href="#XFORMS11" rel=biblioentry>[XFORMS11]<!--{{XFORMS11}}--></a>
   713   </ul>
   715   <p>This specification does not define what is a form element.
   717   <h2 id=user-interface-selectors><span class=secno>4. </span>User Interface
   718    Selectors</h2>
   720   <h3 id=pseudo-classes><span class=secno>4.1. </span>User interface states:
   721    pseudo-classes</h3>
   723   <p>The Selectors specification <a
   724    href="http://www.w3.org/TR/css3-selectors/#UIstates">defines several user
   725    interface selectors</a> (<a href="#SELECT"
   726    rel=biblioentry>[SELECT]<!--{{!SELECT}}--></a>, sections 6.6.1 and 6.6.4)
   727    which represent user interface states:
   729   <ul>
   730    <li id=psuedo-hover><a
   731     href="http://www.w3.org/TR/css3-selectors/#useraction-pseudos">:hover</a>
   733    <li id=pseudo-active><a
   734     href="http://www.w3.org/TR/css3-selectors/#useraction-pseudos">:active</a>
   736    <li id=pseudo-focus><a
   737     href="http://www.w3.org/TR/css3-selectors/#useraction-pseudos">:focus</a>
   739    <li id=pseudo-enabled><a
   740     href="http://www.w3.org/TR/css3-selectors/#enableddisabled">:enabled</a>
   742    <li id=pseudo-disabled><a
   743     href="http://www.w3.org/TR/css3-selectors/#enableddisabled">:disabled</a>
   745    <li id=pseudo-checked><a
   746     href="http://www.w3.org/TR/css3-selectors/#checked">:checked</a>
   748    <li id=pseudo-indeterminate><a
   749     href="http://www.w3.org/TR/css3-selectors/#indeterminate">:indeterminate</a>
   750   </ul>
   752   <p>These pseudo-classes as defined by <a href="#SELECT"
   753    rel=biblioentry>[SELECT]<!--{{!SELECT}}--></a> are included in this
   754    specification by reference.
   756   <p>CSS 2.1 <a href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
   757    specifies additional details for some of the selectors mentioned, above
   758    and beyond Selectors.
   760   <h4 id=active><span class=secno>4.1.1. </span>:active details</h4>
   762   <p>In addition, on systems with more than one mouse button, :active is
   763    clarified to apply only to the primary or primary activation button
   764    (typically the "left" mouse button), and any aliases thereof.
   766   <h4 id=indeterminate><span class=secno>4.1.2. </span> The
   767    indeterminate-value pseudo-class ‘<code
   768    class=css>:indeterminate</code>’</h4>
   770   <p>The <code>:indeterminate</code> pseudo-class applies to UI elements
   771    whose value is in an indeterminate state. For example, radio and checkbox
   772    elements can be toggled between checked and unchecked states, but are
   773    sometimes in an indeterminate state, neither checked nor unchecked.
   774    Similarly a progress meter can be in an indeterminate state when the
   775    percent completion is unknown.
   777   <p>Like the <code>:checked</code> pseudo-class, <code>:indeterminate</code>
   778    applies to all media. Components of a radio-group initialized with no
   779    pre-selected choice, for example, would be <code>:indeterminate</code>
   780    even in a static display.
   782   <h4 class="no-num no-toc" id=new-user-interface-state-pseudo-classes>New
   783    user interface state pseudo-classes</h4>
   785   <p>In addition to the above-mentioned pseudo-classes, this specification
   786    introduces several new pseudo-classes to define additional user interface
   787    states.
   789   <ul>
   790    <li>:default
   792    <li>:valid
   794    <li>:invalid
   796    <li>:in-range
   798    <li>:out-of-range
   800    <li>:required
   802    <li>:optional
   804    <li>:read-only
   806    <li>:read-write
   807   </ul>
   809   <p>Specifically, these new states (except for :default) are provided as a
   810    way to style elements which are in the respective states as defined by
   811    XForms <a href="#XFORMS11"
   812    rel=biblioentry>[XFORMS11]<!--{{XFORMS11}}--></a>.
   814   <h4 id=pseudo-default><span class=secno>4.1.3. </span>:default</h4>
   816   <p>The :default selector applies to the one or more UI elements that are
   817    the default among a set of similar elements. This selector typically
   818    applies to context menu items, buttons, and select lists/menus.
   820   <p> One example is the default submit button among a set of buttons.
   821    Another example is the default option from a popup menu. Multiple elements
   822    in a select-many group could have multiple :default elements, like a
   823    selection of pizza toppings for example.
   825   <h4 id=pseudo-validity><span class=secno>4.1.4. </span><span
   826    id=pseudo-valid>:valid</span> and <span id=pseudo-invalid>:invalid</span></h4>
   828   <p>An element is :valid or :invalid when it is, respectively, valid or
   829    invalid with respect to data validity semantics defined by a different
   830    specification (e.g. <a href="#XFORMS11"
   831    rel=biblioentry>[XFORMS11]<!--{{XFORMS11}}--></a>). An element which lacks
   832    data validity semantics is neither :valid nor :invalid. This is different
   833    from an element which otherwise has no constraints. Such an element would
   834    always be :valid.
   836   <h4 id=pseudo-range><span class=secno>4.1.5. </span><span
   837    id=pseudo-in-range>:in-range</span> and <span
   838    id=pseudo-out-of-range>:out-of-range</span></h4>
   840   <p> The :in-range and :out-of-range pseudo-classes apply only to elements
   841    that have range limitations. An element is :in-range or :out-of-range when
   842    the value that the element is bound to is in range or out of range of the
   843    presentation (e.g. visual or spoken representation) of the element
   844    respectively. An element that lacks data range limits or is not a form
   845    control is neither :in-range nor :out-of-range. E.g. a slider element with
   846    a value of 11 presented as a slider control that only represents the
   847    values from 1-10 is :out-of-range. Another example is a menu element with
   848    a value of "E" that happens to be presented as a popup menu that only has
   849    choices "A", "B" and "C".
   851   <h4 id=pseudo-required-value><span class=secno>4.1.6. </span><span
   852    id=pseudo-required>:required</span> and <span
   853    id=pseudo-optional>:optional</span></h4>
   855   <p>A form element is :required or :optional if a value for it is,
   856    respectively, required or optional before the form it belongs to is
   857    submitted. Elements that are not form elements are neither required nor
   858    optional.
   860   <h4 id=pseudo-ro-rw><span class=secno>4.1.7. </span><span
   861    id=pseudo-read-only>:read-only</span> and <span
   862    id=pseudo-read-write>:read-write</span></h4>
   864   <p>An element whose contents are not user-alterable is :read-only. However,
   865    elements whose contents are user-alterable (such as text input fields) are
   866    considered to be in a :read-write state. In typical documents, most
   867    elements are :read-only. However it may be possible (e.g. in the context
   868    of an editor) for any element to become :read-write.
   870   <h3 id=pseudo-elements><span class=secno>4.2. </span>User interface element
   871    fragments: pseudo-elements</h3>
   873   <p> In addition to the above-mentioned pseudo-element, this specification
   874    introduces four new pseudo-elements to provide access to additional user
   875    interface element fragments.
   877   <ul>
   878    <li>::value
   880    <li>::choices
   882    <li>::repeat-item
   884    <li>::repeat-index
   885   </ul>
   887   <p>Specifically, these new pseudo-elements are provided as a way to style
   888    user interface fragments as defined by XForms <a href="#XFORMS11"
   889    rel=biblioentry>[XFORMS11]<!--{{XFORMS11}}--></a>.
   891   <p class=note> Note: The ::value, ::choices, ::repeat-item, and
   892    ::repeat-index pseudo-elements are all at risk.
   894   <h4 id=pseudo-value><span class=secno>4.2.1. </span>::value</h4>
   896   <p>A form element may contain both a label for its data value, and the data
   897    value itself. For such elements, the ::value pseudo-element selects the
   898    representation of just the data value itself, in order to style its
   899    appearance.
   901   <div class=example>
   902    <p style="display:none">Example(s):
   904    <h4 class="no-num no-toc" id=fictional-markup-and-illustration>fictional
   905     markup and illustration</h4>
   907    <p> Here is an example which illustrates the ::value of a text input field
   908     with fictional markup which is then styled with CSS.
   910    <h5 class="no-num no-toc"
   911     id=sample-xforms-fragment-with-fictional-ma>sample XForms fragment with
   912     fictional markup:</h5>
   914    <pre><code>
   915 &lt;input&gt;
   916   &lt;label&gt;Zip code&lt;label&gt;
   917   <em>&lt;input::value/&gt;</em>
   918 &lt;/input&gt;
   919 </code></pre>
   921    <h5 class="no-num no-toc" id=sample-css>sample CSS:</h5>
   923    <pre><code class=css>
   924 input { border:dashed }
   925 label { border:dotted }
   926 input::value { border:solid }
   927 </code></pre>
   929    <h5 class="no-num no-toc" id=an-htmlcss-approximation-of-this-example>an
   930     HTML+CSS approximation of this example</h5>
   932    <p> <span style="border:dashed;display:inline-block;padding:10px"> <label
   933     style="border:dotted;display:inline-block;padding:2px;margin:0;font-size:1em">Zip
   934     code</label> <input
   935     style="border:solid;display:inline-block;padding:2px;margin:0;font-size:1em"
   936     type=text value=94117> </span>
   938    <p>Spacing (in the form of padding) has been added to the above
   939     approximation to separate the borders and make the individual
   940     (pseudo-)elements easier to distinguish.
   941   </div>
   943   <p>The ::value pseudo-element is similar to an inline-level element, but
   944    with certain restrictions. The following properties apply to
   945    <code>::value</code> pseudo-element: font properties, color property,
   946    background properties, ‘<code class=property>word-spacing</code>’,
   947    ‘<code class=property>letter-spacing</code>’, ‘<code
   948    class=property>text-decoration</code>’, ‘<code
   949    class=property>vertical-align</code>’, ‘<code
   950    class=property>text-transform</code>’, ‘<code
   951    class=property>line-height</code>’. UAs may apply other properties as
   952    well.
   954   <h4 id=pseudo-choices><span class=secno>4.2.2. </span>::choices</h4>
   956   <p>Similarly, a form element which represents a list of options may contain
   957    both a label for the list, and the list of choices itself. For such
   958    elements, the ::choices pseudo-element selects the representation of just
   959    the list of choices themselves, in order to style their appearance.
   961   <p>A list of radio buttons can also be selected with the ::choices
   962    pseudo-element, and the currently chosen radio button can be selected with
   963    the ::value pseudo-element.
   965   <h4 id=pseudo-repeat-item><span class=secno>4.2.3. </span>::repeat-item</h4>
   967   <p> The ::repeat-item pseudo-element represents a single item from a
   968    repeating sequence. It is generated as a parent to all the elements in a
   969    single repeating item. Each ::repeat-item is associated with a particular
   970    instance data node, and is affected by the model item properties (e.g.
   971    ‘<code class=css><code>relevant</code></code>’) found there, as the
   972    related style properties will cascade to the child elements.
   974   <h4 id=pseudo-repeat-index><span class=secno>4.2.4. </span>::repeat-index</h4>
   976   <p> The ::repeat-index pseudo-element represents the current item of a
   977    repeating sequence. It takes the place of the ::repeat-item as a parent of
   978    all the elements in the index repeating item.
   980   <div class=note>
   981    <p> <em><strong>Note.</strong> Any style declarations that an author wants
   982     to apply to all repeat items, including the index, must be done so by
   983     using both ::repeat-item and ::repeat-index selectors. Styles that are
   984     only applied to ::repeat-item will not automatically be applied to the
   985     respective ::repeat-index. </em>
   986   </div>
   988   <div class=example>
   989    <p style="display:none">Example(s):
   991    <h4 class="no-num no-toc"
   992     id=repeat-item-and-repeat-index-fictional-m>::repeat-item and
   993     ::repeat-index fictional markup</h4>
   995    <p> Here is an example that illustrates both ::repeat-item and
   996     ::repeat-index, since they are often both available and used at the same
   997     time. Assume appropriate namespace declarations were made in a header
   998     somewhere preceding the code in the example.
  1000    <p>The following markup snippet uses XHTML and XForms:
  1002    <pre><code lang=x-xhtml>
  1003 &lt;html:table xforms:repeat-nodeset="..."&gt;
  1004    &lt;html:tr&gt;
  1005       &lt;html:td&gt;&lt;xforms:input ref="..."/&gt;&lt;xforms:input ref="..."/&gt;&lt;/html:td&gt;
  1006    &lt;/html:tr&gt;
  1007 &lt;/html:table&gt;
  1008 </code></pre>
  1010    <p> The following style rules are used to style all the repeated items and
  1011     the current repeated item.
  1013    <pre><code class=css lang=x-css>
  1014 html|tr::repeat-item { outline: medium solid; color:gray }
  1015 html|tr::repeat-index { outline: medium dashed; color:black }
  1016 </code></pre>
  1018    <p> The following fictional markup shows the state of the above markup
  1019     when through user interaction the XForm contains three of the repeated
  1020     items, where the third item is current.
  1022    <pre><code lang=x-xhtml>
  1023 &lt;html:table xforms:repeat-nodeset="..."&gt;
  1024  <em>&lt;html:tr::repeat-item&gt;</em>
  1025   &lt;html:tr&gt;
  1026    &lt;html:td&gt;&lt;xforms:input ref="..."/&gt;&lt;xforms:input ref="..."/&gt;&lt;/html:td&gt;
  1027   &lt;/html:tr&gt;
  1028  <em>&lt;/html:tr::repeat-item&gt;</em>
  1029  <em>&lt;html:tr::repeat-item&gt;</em>
  1030   &lt;html:tr&gt;
  1031    &lt;html:td&gt;&lt;xforms:input ref="..."/&gt;&lt;xforms:input ref="..."/&gt;&lt;/html:td&gt;
  1032   &lt;/html:tr&gt;
  1033  <em>&lt;/html:tr::repeat-item&gt;</em>
  1034  <em>&lt;html:tr::repeat-index&gt;</em>
  1035   &lt;html:tr&gt;
  1036    &lt;html:td&gt;&lt;xforms:input ref="..."/&gt;&lt;xforms:input ref="..."/&gt;&lt;/html:td&gt;
  1037   &lt;/html:tr&gt;
  1038  <em>&lt;/html:tr::repeat-index&gt;</em>
  1039 &lt;/html:table&gt;
  1040 </code></pre>
  1041   </div>
  1043   <div class=note>
  1044    <p> <em><strong>Note.</strong> The ::repeat-index pseudo-element takes the
  1045     place of the ::repeat-item rather than being nested inside as a separate
  1046     element. Thus just like :link or :visited are mutually exclusive for
  1047     selecting hyperlinks, only one will exist and apply to a particular
  1048     repeated item at any point.</em>
  1049   </div>
  1051   <h2 id=element-icons><span class=secno>5. </span>Element icons</h2>
  1053   <h3 id=content-property-addition><span class=secno>5.1. </span><a
  1054    class=property href="#content">‘<code
  1055    class=property>content</code>’</a> property addition</h3>
  1057   <table class=propdef>
  1058    <tbody>
  1059     <tr>
  1060      <th>Name:
  1062      <td><dfn id=content>content</dfn>
  1064     <tr>
  1065      <th>New Value(s):
  1067      <td title="">icon
  1069     <tr>
  1070      <th>Initial:
  1072      <td>same as CSS 2.1
  1074     <tr>
  1075      <th>Applies to:
  1077      <td>same as CSS 2.1
  1079     <tr>
  1080      <th>Inherited:
  1082      <td>same as CSS 2.1
  1084     <tr>
  1085      <th>Percentages:
  1087      <td>same as CSS 2.1
  1089     <tr>
  1090      <th>Media:
  1092      <td>same as CSS 2.1
  1094     <tr>
  1095      <th>Computed value:
  1097      <td>the keyword ‘<a href="#icon"><code class=css><span class=value
  1098       title="">icon</span></code></a>’ if specified as such, otherwise same
  1099       as CSS 2.1
  1101     <tr>
  1102      <th>Animatable:
  1104      <td>no
  1105   </table>
  1107   <dl>
  1108    <dt>icon
  1110    <dd>The (pseudo-)element is replaced in its entirety by the resource
  1111     referenced by its <a class=property href="#icon">‘<code
  1112     class=property>icon</code>’</a> property, and treated as a replaced
  1113     element.
  1114   </dl>
  1116   <p class=note><em><strong>Note.</strong> It is expected that the next draft
  1117    of the CSS3 Generated Content module <a href="#CSS3GENCON"
  1118    rel=biblioentry>[CSS3GENCON]<!--{{CSS3GENCON}}--></a> will include and
  1119    superset this functionality. </em>
  1121   <p class=note> Note: The ‘<a href="#icon"><code
  1122    class=property>icon</code></a>’ value is at risk.
  1124   <h3 id=icon-property><span class=secno>5.2. </span><a class=property
  1125    href="#icon">‘<code class=property>icon</code>’</a> property</h3>
  1127   <table class=propdef>
  1128    <tbody>
  1129     <tr>
  1130      <th>Name:
  1132      <td><dfn id=icon>icon</dfn>
  1134     <tr>
  1135      <th>Value:
  1137      <td>auto | &lt;uri&gt; [, &lt;uri&gt;]* | inherit
  1139     <tr>
  1140      <th>Initial:
  1142      <td>auto
  1144     <tr>
  1145      <th>Applies to:
  1147      <td>all elements
  1149     <tr>
  1150      <th>Inherited:
  1152      <td>no
  1154     <tr>
  1155      <th>Percentages:
  1157      <td>N/A
  1159     <tr>
  1160      <th>Media:
  1162      <td>all
  1164     <tr>
  1165      <th>Computed value:
  1167      <td>as specified, except with any relative URLs converted to absolute
  1169     <tr>
  1170      <th>Animatable:
  1172      <td>no
  1173   </table>
  1175   <dl>
  1176    <dt>auto
  1178    <dd>Use a default generic icon provided by the user agent.
  1180    <dt>&lt;uri&gt;
  1182    <dd>URIs (see <a href="#URI" rel=biblioentry>[URI]<!--{{!URI}}--></a>, <a
  1183     href="#RFC1738" rel=biblioentry>[RFC1738]<!--{{!RFC1738}}--></a> and <a
  1184     href="#RFC1808" rel=biblioentry>[RFC1808]<!--{{!RFC1808}}--></a>) provide
  1185     a way of identifying resources. The &lt;uri&gt; value(s) in this property
  1186     refer to one or more icons in a comma delimited list. The user agent
  1187     loads the referenced icons one by one until it finds one that it is able
  1188     to render. This permits the usage of multiple different icon formats for
  1189     various platforms, and various media for that matter.
  1190   </dl>
  1192   <p>The <a class=property href="#icon">‘<code
  1193    class=property>icon</code>’</a> property provides the author the ability
  1194    to style any arbitrary element with an iconic equivalent. An element's
  1195    icon is not used/rendered unless the <a class=property
  1196    href="#content">‘<code class=property>content</code>’</a> property is
  1197    set to the value ‘<a href="#icon"><code class=css><span class=value
  1198    title="">icon</span></code></a>’ (see above). Documents whose elements
  1199    have icons assigned to them can be more easily viewed by users who find
  1200    too much text distracting.
  1202   <div class=example>
  1203    <p style="display:none">Example(s):
  1205    <h4 class="no-num no-toc" id=representing-elements-with-icons>Representing
  1206     elements with icons</h4>
  1208    <p>This example uses the above icon features to display icons in place of
  1209     images and objects.
  1211    <pre><code class=css>
  1212 img,object { content:icon }
  1213   /* note that the CSS3 Generated Content module <a
  1214     href="#CSS3GENCON" rel=biblioentry>[CSS3GENCON]<!--{{CSS3GENCON}}--></a>
  1215      expands the <a
  1216     class=property
  1217     href="#content">'content'</a> property to apply to all elements. */
  1219 img { icon:url(imgicon.png); }
  1220   /* provide a custom icon for images */
  1222 object { icon:url(objicon.png); }
  1223   /* provide a different custom icon for objects */
  1224 </code></pre>
  1225   </div>
  1227   <p class=note> Note: The ‘<a href="#icon"><code
  1228    class=property>icon</code></a>’ property is at risk.
  1230   <h2 id=box-model-addition><span class=secno>6. </span>Box Model addition</h2>
  1232   <h3 id=box-sizing><span class=secno>6.1. </span><a class=property
  1233    href="#box-sizing0">‘<code class=property>box-sizing</code>’</a>
  1234    property</h3>
  1236   <table class=propdef>
  1237    <tbody>
  1238     <tr>
  1239      <th>Name:
  1241      <td><dfn id=box-sizing0>box-sizing</dfn>
  1243     <tr>
  1244      <th>Value:
  1246      <td> content-box | padding-box | border-box | inherit
  1248     <tr>
  1249      <th>Initial:
  1251      <td>content-box
  1253     <tr>
  1254      <th>Applies to:
  1256      <td>all elements that accept width or height
  1258     <tr>
  1259      <th>Inherited:
  1261      <td>no
  1263     <tr>
  1264      <th>Percentages:
  1266      <td>N/A
  1268     <tr>
  1269      <th>Media:
  1271      <td>visual
  1273     <tr>
  1274      <th>Computed value:
  1276      <td>specified value
  1278     <tr>
  1279      <th>Animatable:
  1281      <td>no
  1282   </table>
  1284   <dl>
  1285    <dt>content-box
  1287    <dd>This is the behavior of width and height as specified by CSS2.1. The
  1288     specified width and height (and respective min/max properties) apply to
  1289     the width and height respectively of the content box of the element. The
  1290     padding and border of the element are laid out and drawn outside the
  1291     specified width and height.
  1293    <dt>padding-box
  1295    <dd> The specified width and height (and respective min/max properties) on
  1296     this element determine the padding box of the element. That is, any
  1297     padding specified on the element is laid out and drawn inside this
  1298     specified width and height. The content width and height are calculated
  1299     by subtracting the padding widths of the respective sides from the
  1300     specified <span class=property>‘<code
  1301     class=property>width</code>’</span> and <span class=property>‘<code
  1302     class=property>height</code>’</span> properties. As the content width
  1303     and height <a
  1304     href="http://www.w3.org/TR/CSS21/visudet.html#the-width-property"> cannot
  1305     be negative</a> (<a href="#CSS21"
  1306     rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, section 10.2), this
  1307     computation is floored at 0.
  1309    <dt>border-box
  1311    <dd>The specified width and height (and respective min/max properties) on
  1312     this element determine the border box of the element. That is, any
  1313     padding or border specified on the element is laid out and drawn inside
  1314     this specified width and height. The content width and height are
  1315     calculated by subtracting the border and padding widths of the respective
  1316     sides from the specified <span class=property>‘<code
  1317     class=property>width</code>’</span> and <span class=property>‘<code
  1318     class=property>height</code>’</span> properties. As the content width
  1319     and height <a
  1320     href="http://www.w3.org/TR/CSS21/visudet.html#the-width-property">cannot
  1321     be negative</a> (<a href="#CSS21"
  1322     rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, section 10.2), this
  1323     computation is floored at 0.
  1324     <p class=note><em><strong>Note.</strong> This is the behavior of width
  1325      and height as commonly implemented by legacy HTML user agents for
  1326      replaced elements and input elements.</em>
  1327   </dl>
  1329   <div class=example>
  1330    <p style="display:none">Example(s):
  1332    <h4 class="no-num no-toc" id=using-box-sizing-to-evenly-share-space>Using
  1333     box-sizing to evenly share space</h4>
  1335    <p>This example uses box-sizing to evenly horizontally split two divs with
  1336     fixed size borders inside a div container, which would otherwise require
  1337     additional markup.
  1339    <h5 class="no-num no-toc" id=sample-css0>sample CSS:</h5>
  1341    <pre><code class=css>
  1342 div.container {
  1343 	width:38em;
  1344 	border:1em solid black;
  1347 div.split {
  1348 	box-sizing:border-box;
  1349 	width:50%;
  1350 	border:1em silver ridge;
  1351 	float:left;
  1353 </code></pre>
  1355    <h5 class="no-num no-toc" id=sample-html-fragment>sample HTML fragment:</h5>
  1357    <pre><code>
  1358 &lt;div class="container"&gt;
  1359 &lt;div class="split"&gt;This div occupies the left half.&lt;/div&gt;
  1360 &lt;div class="split"&gt;This div occupies the right half.&lt;/div&gt;
  1361 &lt;/div&gt;
  1362 </code></pre>
  1364    <h5 class="no-num no-toc"
  1365     id=demonstration-of-sample-css-and-html>demonstration of sample CSS and
  1366     HTML:</h5>
  1368    <div style="width:38em; border:1em solid black">
  1369     <div
  1370      style="box-sizing:border-box; width:50%; border:1em silver ridge; float:left">This
  1371      div should occupy the left half.</div>
  1373     <div
  1374      style="box-sizing:border-box; width:50%; border:1em silver ridge; float:left">This
  1375      div should occupy the right half.</div>
  1376     The two divs above should appear side by side, each (including borders)
  1377     50% of the content width of their container. If instead they are stacked
  1378     one on top of the other then your browser does not support <a
  1379     class=property href="#box-sizing0">‘<code
  1380     class=property>box-sizing</code>’</a>.</div>
  1381   </div>
  1383   <p class=note> Note: The ‘<code class=property>padding-box</code>’
  1384    value is at risk.
  1386   <h2 id=outline-properties><span class=secno>7. </span>Outline properties</h2>
  1388   <p>At times, style sheet authors may want to create outlines around visual
  1389    objects such as buttons, active form fields, image maps, etc., to make
  1390    them stand out. Outlines differ from borders in the following ways:
  1392   <ol>
  1393    <li>Outlines do not take up space.
  1395    <li>Outlines may be non-rectangular.
  1396   </ol>
  1398   <p>The outline properties control the style of these dynamic outlines.
  1400   <h3 id=outline><span class=secno>7.1. </span><a class=property
  1401    href="#outline0">‘<code class=property>outline</code>’</a> property</h3>
  1403   <table class=propdef id=propdef-outline>
  1404    <tbody>
  1405     <tr>
  1406      <th>Name:
  1408      <td><dfn id=outline0>outline</dfn>
  1410     <tr>
  1411      <th>Value:
  1413      <td> [ <span class=property>&lt;‘<a href="#outline-color0"><code
  1414       class=property>outline-color</code></a>’&gt;</span> || <span
  1415       class=property>&lt;‘<a href="#outline-style0"><code
  1416       class=property>outline-style</code></a>’&gt;</span> || <span
  1417       class=property>&lt;‘<a href="#outline-width0"><code
  1418       class=property>outline-width</code></a>’&gt;</span> ] | inherit
  1420     <tr>
  1421      <th>Initial:
  1423      <td>see individual properties
  1425     <tr>
  1426      <th>Applies to:
  1428      <td>all elements
  1430     <tr>
  1431      <th>Inherited:
  1433      <td>no
  1435     <tr>
  1436      <th>Percentages:
  1438      <td>N/A
  1440     <tr>
  1441      <th>Media:
  1443      <td>visual
  1445     <tr>
  1446      <th>Computed value:
  1448      <td>see individual properties
  1450     <tr>
  1451      <th>Animatable:
  1453      <td>see individual properties
  1454   </table>
  1456   <h3 id=outline-width><span class=secno>7.2. </span><a class=property
  1457    href="#outline-width0">‘<code class=property>outline-width</code>’</a>
  1458    property</h3>
  1460   <table class=propdef id=propdef-outline-width>
  1461    <tbody>
  1462     <tr>
  1463      <th>Name:
  1465      <td><dfn id=outline-width0>outline-width</dfn>
  1467     <tr>
  1468      <th>Value:
  1470      <td><a class=noxref
  1471       href="http://www.w3.org/TR/CSS21/box.html#value-def-border-width"><span
  1472       class=value-inst-border-width>&lt;border-width&gt;</span></a> | inherit
  1474     <tr>
  1475      <th>Initial:
  1477      <td>medium
  1479     <tr>
  1480      <th>Applies to:
  1482      <td>all elements
  1484     <tr>
  1485      <th>Inherited:
  1487      <td>no
  1489     <tr>
  1490      <th>Percentages:
  1492      <td>N/A
  1494     <tr>
  1495      <th>Media:
  1497      <td>visual
  1499     <tr>
  1500      <th>Computed value:
  1502      <td>absolute length; ‘<code class=css>0</code>’ if the outline style
  1503       is ‘<code class=property>none</code>’.
  1505     <tr>
  1506      <th>Animatable:
  1508      <td>as <a
  1509       href="http://dev.w3.org/csswg/css3-transitions/#animtype-length">length</a>
  1510   </table>
  1512   <h3 id=outline-style><span class=secno>7.3. </span><a class=property
  1513    href="#outline-style0">‘<code class=property>outline-style</code>’</a>
  1514    property</h3>
  1516   <table class=propdef id=propdef-outline-style>
  1517    <tbody>
  1518     <tr>
  1519      <th>Name:
  1521      <td><dfn id=outline-style0>outline-style</dfn>
  1523     <tr>
  1524      <th>Value:
  1526      <td>auto | <a class=noxref
  1527       href="http://www.w3.org/TR/CSS21/box.html#value-def-border-style"><span
  1528       class=value-inst-border-style>&lt;border-style&gt;</span></a> | inherit
  1530     <tr>
  1531      <th>Initial:
  1533      <td>none
  1535     <tr>
  1536      <th>Applies to:
  1538      <td>all elements
  1540     <tr>
  1541      <th>Inherited:
  1543      <td>no
  1545     <tr>
  1546      <th>Percentages:
  1548      <td>N/A
  1550     <tr>
  1551      <th>Media:
  1553      <td>visual
  1555     <tr>
  1556      <th>Computed value:
  1558      <td>specified value
  1560     <tr>
  1561      <th>Animatable:
  1563      <td>no
  1564   </table>
  1566   <h3 id=outline-color><span class=secno>7.4. </span><a class=property
  1567    href="#outline-color0">‘<code class=property>outline-color</code>’</a>
  1568    property</h3>
  1570   <table class=propdef id=propdef-outline-color>
  1571    <tbody>
  1572     <tr>
  1573      <th>Name:
  1575      <td><dfn id=outline-color0>outline-color</dfn>
  1577     <tr>
  1578      <th>Value:
  1580      <td><a class=noxref
  1581       href="http://www.w3.org/TR/css3-color/#colorunits"><span
  1582       class=value-inst-color>&lt;color&gt;</span></a> | invert | inherit
  1584     <tr>
  1585      <th>Initial:
  1587      <td>invert
  1589     <tr>
  1590      <th>Applies to:
  1592      <td>all elements
  1594     <tr>
  1595      <th>Inherited:
  1597      <td>no
  1599     <tr>
  1600      <th>Percentages:
  1602      <td>N/A
  1604     <tr>
  1605      <th>Media:
  1607      <td>visual
  1609     <tr>
  1610      <th>Computed value:
  1612      <td>The computed value for ‘<a href="#invert"><code class=css><span
  1613       class=value>invert</span></code></a>’ is ‘<a href="#invert"><code
  1614       class=css><span class=value>invert</span></code></a>’. For
  1615       &lt;color&gt; values, the computed value is as defined for the <a
  1616       href="#CSS3COLOR" rel=biblioentry>[CSS3COLOR]<!--{{!CSS3COLOR}}--></a>
  1617       <span class=property>‘<code class=property>color</code>’</span>
  1618       property.
  1620     <tr>
  1621      <th>Animatable:
  1623      <td>as <a
  1624       href="http://dev.w3.org/csswg/css3-transitions/#animtype-color">color</a>
  1625   </table>
  1627   <p>The outline created with the outline properties is drawn "over" a box,
  1628    i.e., the outline is always on top, and doesn't influence the position or
  1629    size of the box, or of any other boxes. Therefore, displaying or
  1630    suppressing outlines does not cause reflow.
  1632   <p>Outlines may be non-rectangular. For example, if the element is broken
  1633    across several lines, the outline should be an outline or minimum set of
  1634    outlines that encloses all the element's boxes. Each part of the outline
  1635    should be fully connected rather than open on some sides (as borders on
  1636    inline elements are when lines are broken). The parts of the outline are
  1637    not required to be rectangular. The position of the outline may be
  1638    affected by descendant boxes. User agents should use an algorithm for
  1639    determining the outline that encloses a region appropriate for conveying
  1640    the concept of focus to the user.
  1642   <p>The <a class=property href="#outline-width0">‘<code
  1643    class=property>outline-width</code>’</a> property accepts the same
  1644    values as <a class=noxref
  1645    href="http://www.w3.org/TR/CSS21/box.html#propdef-border-width"><span
  1646    class=propinst-border-width>‘<code
  1647    class=property>border-width</code>’</span></a> (<a href="#CSS21"
  1648    rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, section 8.5.1).
  1650   <p>The <a class=property href="#outline-style0">‘<code
  1651    class=property>outline-style</code>’</a> property accepts the same
  1652    values as <a class=noxref
  1653    href="http://www.w3.org/TR/CSS21/box.html#propdef-border-style"><span
  1654    class=propinst-border-style>‘<code
  1655    class=property>border-style</code>’</span></a> (<a href="#CSS21"
  1656    rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, section 8.5.3), except that
  1657    ‘<code class=css><span class=value>hidden</span></code>’ is not a
  1658    legal outline style. In addition, in CSS3, <a class=property
  1659    href="#outline-style0">‘<code class=property>outline-style</code>’</a>
  1660    accepts the value ‘<code class=css><span
  1661    class=value>auto</span></code>’. The ‘<code class=css><span
  1662    class=value>auto</span></code>’ value permits the user agent to render a
  1663    custom outline style, typically a style which is either a user interface
  1664    default for the platform, or perhaps a style that is richer than can be
  1665    described in detail in CSS, e.g. a rounded edge outline with
  1666    semi-translucent outer pixels that appears to glow. As such, this
  1667    specification does not define how the <a class=property
  1668    href="#outline-color0">‘<code class=property>outline-color</code>’</a>
  1669    is incorporated or used (if at all) when rendering ‘<code
  1670    class=css><span class=value>auto</span></code>’ style outlines. User
  1671    agents may treat ‘<code class=css><span
  1672    class=value>auto</span></code>’ as ‘<code class=css><span
  1673    class=value>solid</span></code>’.
  1675   <p>The <a class=property href="#outline-color0">‘<code
  1676    class=property>outline-color</code>’</a> property accepts all colors, as
  1677    well as the keyword ‘<code class=css><dfn
  1678    id=invert>invert</dfn></code>’. ‘<a href="#invert"><code
  1679    class=property>Invert</code></a>’ is expected to perform a color
  1680    inversion on the pixels on the screen. This is a common trick to ensure
  1681    the focus border is visible, regardless of color background.
  1683   <p> Conformant UAs may ignore the ‘<a href="#invert"><code
  1684    class=css><span class=value>invert</span></code></a>’ value on platforms
  1685    that do not support color inversion of the pixels on the screen. If the UA
  1686    does not support the ‘<a href="#invert"><code class=css><span
  1687    class=value>invert</span></code></a>’ value then the initial value of
  1688    the <a class=property href="#outline-color0">‘<code
  1689    class=property>outline-color</code>’</a> property is the ‘<code
  1690    class=css><span class=value>currentColor</span></code>’ <a
  1691    href="#CSS3COLOR" rel=biblioentry>[CSS3COLOR]<!--{{!CSS3COLOR}}--></a>
  1692    keyword.
  1694   <p>The <a class=property href="#outline0">‘<code
  1695    class=property>outline</code>’</a> property is a shorthand property, and
  1696    sets all three of <a class=property href="#outline-style0">‘<code
  1697    class=property>outline-style</code>’</a>, <a class=property
  1698    href="#outline-width0">‘<code
  1699    class=property>outline-width</code>’</a>, and <a class=property
  1700    href="#outline-color0">‘<code
  1701    class=property>outline-color</code>’</a>.
  1703   <p class=note><em><strong>Note.</strong> The outline is the same on all
  1704    sides. In contrast to borders, there are no ‘<code
  1705    class=property>outline-top</code>’ or ‘<code
  1706    class=property>outline-left</code>’ etc. properties.</em>
  1708   <p> This specification does not define how multiple overlapping outlines
  1709    are drawn, or how outlines are drawn for boxes that are partially obscured
  1710    behind other elements.
  1712   <div class=example>
  1713    <p style="display:none">Example(s):
  1715    <p> Here's an example of drawing a thick outline around a BUTTON element:
  1717    <pre><code class=css>
  1718 button { outline: thick solid }
  1719 </code></pre>
  1720   </div>
  1722   <p>Graphical user interfaces may use outlines around elements to tell the
  1723    user which element on the page has the focus. These outlines are in
  1724    addition to any borders, and switching outlines on and off should not
  1725    cause the document to reflow. The focus is the subject of user interaction
  1726    in a document (e.g., for entering text, selecting a button, etc.).
  1728   <div class=example>
  1729    <p style="display:none">Example(s):
  1731    <p>For example, to draw a thick black line around an element when it has
  1732     the focus, and a thick red line when it is active, the following rules
  1733     can be used:
  1735    <pre><code class=css>
  1736 :focus  { outline: thick solid black }
  1737 :active { outline: thick solid red }
  1738 </code></pre>
  1739   </div>
  1741   <div class=note>
  1742    <p> <em><strong>Note.</strong> Since the outline does not affect
  1743     formatting (i.e., no space is left for it in the box model), it may well
  1744     overlap other elements on the page. </em>
  1745   </div>
  1747   <h3 id=outline-offset><span class=secno>7.5. </span><a class=property
  1748    href="#outline-offset0">‘<code
  1749    class=property>outline-offset</code>’</a> property</h3>
  1751   <p>By default, the outline is drawn starting just outside the border edge.
  1752    However, it is possible to offset the outline and draw it beyond the
  1753    border edge.
  1755   <table class=propdef id=propdef-outline-offset>
  1756    <tbody>
  1757     <tr>
  1758      <th>Name:
  1760      <td><dfn id=outline-offset0>outline-offset</dfn>
  1762     <tr>
  1763      <th>Value:
  1765      <td>&lt;length&gt; | inherit
  1767     <tr>
  1768      <th>Initial:
  1770      <td>0
  1772     <tr>
  1773      <th>Applies to:
  1775      <td>all elements
  1777     <tr>
  1778      <th>Inherited:
  1780      <td>no
  1782     <tr>
  1783      <th>Percentages:
  1785      <td>N/A
  1787     <tr>
  1788      <th>Media:
  1790      <td>visual
  1792     <tr>
  1793      <th>Computed value:
  1795      <td>&lt;length&gt; value in absolute units (px or physical).
  1797     <tr>
  1798      <th>Animatable:
  1800      <td>as <a
  1801       href="http://dev.w3.org/csswg/css3-transitions/#animtype-length">length</a>
  1802   </table>
  1804   <p>If the computed value of <a class=property
  1805    href="#outline-offset0">‘<code
  1806    class=property>outline-offset</code>’</a> is anything other than 0, then
  1807    the outline is outset from the border edge by that amount.
  1809   <div class=example>
  1810    <p style="display:none">Example(s):
  1812    <p>For example, to leave 2 pixels of space between a focus outline and the
  1813     element that has the focus, or is active, the following rule can be used:
  1815    <pre><code class=css>
  1816 :focus,:active  { outline-offset: 2px }
  1817 </code></pre>
  1818   </div>
  1820   <h2 id=resizing-amp-overflow><span class=secno>8. </span>Resizing &amp;
  1821    Overflow</h2>
  1823   <p>CSS2.1 provides a mechanism for controlling the appearance of a
  1824    scrolling mechanism (e.g. scrollbars) on block container elements. This
  1825    specification adds to that a mechanism for controlling user resizability
  1826    of elements as well as the ability to specify text overflow behavior.
  1828   <h3 id=resize><span class=secno>8.1. </span><a class=property
  1829    href="#resize0">‘<code class=property>resize</code>’</a> property</h3>
  1831   <p>The <a class=property href="#resize0">‘<code
  1832    class=property>resize</code>’</a> property allows the author to specify
  1833    whether or not an element is resizable by the user, and if so, along which
  1834    axis/axes.
  1836   <table class=propdef id=propdef-resize>
  1837    <tbody>
  1838     <tr>
  1839      <th>Name:
  1841      <td><dfn id=resize0>resize</dfn>
  1843     <tr>
  1844      <th>Value:
  1846      <td>none | both | horizontal | vertical | inherit
  1848     <tr>
  1849      <th>Initial:
  1851      <td>none
  1853     <tr>
  1854      <th>Applies to:
  1856      <td>elements with <span class=property>‘<code
  1857       class=property>overflow</code>’</span> other than visible
  1859     <tr>
  1860      <th>Inherited:
  1862      <td>no
  1864     <tr>
  1865      <th>Percentages:
  1867      <td>N/A
  1869     <tr>
  1870      <th>Media:
  1872      <td>visual
  1874     <tr>
  1875      <th>Computed value:
  1877      <td>specified value.
  1879     <tr>
  1880      <th>Animatable:
  1882      <td>no
  1883   </table>
  1885   <dl>
  1886    <dt>none
  1888    <dd>The UA does not present a resizing mechanism on the element, and the
  1889     user is given no direct manipulation mechanism to resize the element.
  1891    <dt>both
  1893    <dd>The UA presents a bidirectional resizing mechanism to allow the user
  1894     to adjust both the height and the width of the element.
  1896    <dt>horizontal
  1898    <dd>The UA presents a unidirectional horizontal resizing mechanism to
  1899     allow the user to adjust only the width of the element.
  1901    <dt>vertical
  1903    <dd>The UA presents a unidirectional vertical resizing mechanism to allow
  1904     the user to adjust only the height of the element.
  1905   </dl>
  1907   <p>Currently it is possible to control the appearance of the scrolling
  1908    mechanism (if any) on an element using the <span class=property>‘<code
  1909    class=property>overflow</code>’</span> property (e.g. ‘<code
  1910    class=css><code class=css>overflow: scroll</code></code>’ vs. ‘<code
  1911    class=css><code class=css>overflow: hidden</code></code>’ etc.). The
  1912    purpose of the <a class=property href="#resize0">‘<code
  1913    class=property>resize</code>’</a> property is to also allow control over
  1914    the appearance and function of the resizing mechanism (e.g. a resize box
  1915    or widget) on the element.
  1917   <p class=note> <em><strong>Note.</strong> The resizing mechanism is NOT the
  1918    same as the scrolling mechanism. The scrolling mechanism allows the user
  1919    to determine which portion of the contents of an element is shown. The
  1920    resizing mechanism allows the user to determine the size of the element.
  1921    </em>
  1923   <p>The <a class=property href="#resize0">‘<code
  1924    class=property>resize</code>’</a> property applies to elements whose
  1925    computed <span class=property>‘<code
  1926    class=property>overflow</code>’</span> value is something other than
  1927    ‘<code class=css><span class=value>visible</span></code>’. If <span
  1928    class=property>‘<code class=property>overflow</code>’</span> is
  1929    different in a particular axis (i.e. <span class=property>‘<code
  1930    class=property>overflow-x</code>’</span> vs. <span
  1931    class=property>‘<code class=property>overflow-y</code>’</span>), then
  1932    this property applies to the dimension(s) which do not have the value
  1933    ‘<code class=css><span class=value>visible</span></code>’.
  1935   <p> When an element is resized by the user, the user agent keeps track of a
  1936    resize factor (which is initially 1.0) for the width and height, which it
  1937    then applies to the computed width and height as part of determining the
  1938    used width and height. The element's contents (and surroundings) are
  1939    reformatted as necessary.
  1941   <p>The resize factor introduces a step in width/height calculations and
  1942    formatting as described in <a
  1943    href="http://www.w3.org/TR/CSS21/visudet.html">chapter 10 of CSS2.1</a>.
  1944    Specifically the following step is inserted between steps 1 and 2 of the
  1945    algorithm in <a
  1946    href="http://www.w3.org/TR/CSS21/visudet.html#min-max-widths">section
  1947    10.4</a> and <a
  1948    href="http://www.w3.org/TR/CSS21/visudet.html#min-max-heights">10.7</a> in
  1949    CSS2.1 <a href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>,
  1950    where [dimension] is ‘<code class=property>width</code>’ for 10.4 and
  1951    ‘<code class=property>height</code>’ for 10.7.
  1953   <blockquote>
  1954    <p style="text-indent:-2em"> 1b. If the resize [dimension] factor is not
  1955     1.0, then the tentative used [dimension] is multiplied by that factor,
  1956     and the rules above are applied again, but this time using the result of
  1957     that multiplication as the computed value for ‘<code
  1958     class=css>[dimension]</code>’.
  1959   </blockquote>
  1961   <p> With regard to interactivity and the Document Object Model (DOM), the
  1962    resize factor on an element lasts the lifetime of the element, however, if
  1963    the <a class=property href="#resize0">‘<code
  1964    class=property>resize</code>’</a> property itself is altered (e.g. via
  1965    pseudo-class change or via DOM manipulation), then the resize factor is
  1966    reset to 1.0.
  1968   <p> The precise direction of resizing (i.e. altering the top left of the
  1969    element or altering the bottom right) may depend on a number of factors
  1970    including whether the element is absolutely positioned, whether it is
  1971    positioned using the <span class=property>‘<code
  1972    class=property>right</code>’</span> and <span class=property>‘<code
  1973    class=property>bottom</code>’</span> properties, whether the language of
  1974    the element is right-to-left etc. The precise direction of resizing is
  1975    left to the UA to properly determine for the platform.
  1977   <p> The user agent may restrict the resizing range to something suitable,
  1978    such as between the original formatted size of the element, and large
  1979    enough to encompass all the element's contents.
  1981   <div class=example>
  1982    <p style="display:none">Example(s):
  1984    <p>For example, to make iframes scrollable <em>and</em> resizable, the
  1985     following rule can be used:
  1987    <pre><code class=css>
  1988 iframe,object[type^="text/"],
  1989 object[type$="+xml"],object[type="application/xml"] 
  1991   overflow:auto;
  1992   resize:both;
  1994 </code></pre>
  1995   </div>
  1996   <!--
  1997 too bad we don't have @viewport yet. otherwise this would be cool:
  1998 <pre><code class="css">
  1999 @viewport {
  2000        width: 100px; 
  2001        height: 100px;
  2002        overflow: hidden;
  2003        resize: none 
  2004      } /* display content in a non-resizable 100px by 100px window */
  2005 </code></pre>
  2006 -->
  2008   <h3 id=text-overflow><span class=secno>8.2. </span> Overflow Ellipsis: the
  2009    ‘<a href="#text-overflow0"><code
  2010    class=property>text-overflow</code></a>’ property</h3>
  2012   <table class=propdef id=propdef-text-overflow>
  2013    <tbody>
  2014     <tr>
  2015      <th>Name:
  2017      <td><dfn id=text-overflow0>text-overflow</dfn>
  2019     <tr>
  2020      <th>Value:
  2022      <td> ( clip | ellipsis | <a class=noxref
  2023       href="http://www.w3.org/TR/CSS21/syndata.html#value-def-string"> <span
  2024       class=value-inst-string>&lt;string&gt;</span></a> ){1,2} | inherit
  2026     <tr>
  2027      <th>Initial:
  2029      <td>clip
  2031     <tr>
  2032      <th>Applies to:
  2034      <td>block containers
  2036     <tr>
  2037      <th>Inherited:
  2039      <td>no
  2041     <tr>
  2042      <th>Percentages:
  2044      <td>N/A
  2046     <tr>
  2047      <th>Media:
  2049      <td>visual
  2051     <tr>
  2052      <th>Computed value:
  2054      <td>as specified
  2056     <tr>
  2057      <th>Animatable:
  2059      <td>no
  2060   </table>
  2062   <p>This property specifies rendering when inline content overflows its
  2063    block container element ("the block") in its inline progression direction
  2064    that has <span class=property>‘<code
  2065    class=property>overflow</code>’</span> other than <span
  2066    class=value>‘<code class=property>visible</code>’</span>. Text can
  2067    overflow for example when it is prevented from wrapping (e.g. due to
  2068    ‘<code class=css><code>white-space:nowrap</code></code>’ or a single
  2069    word is too long to fit). Values have the following meanings:
  2071   <dl>
  2072    <dt><dfn id=clip title="text-overflow:clip"><code>clip</code></dfn>
  2074    <dd>Clip inline content that overflows. Characters may be only partially
  2075     rendered.
  2077    <dt><dfn id=ellipsis
  2078     title="text-overflow:ellipsis"><code>ellipsis</code></dfn>
  2080    <dd> Render an ellipsis character (U+2026) to represent clipped inline
  2081     content. Implementations may substitute a more
  2082     language/script-appropriate ellipsis character, or three dots "..." if
  2083     the ellipsis character is unavailable.
  2085    <dt><dfn id=ltstringgt title="text-overflow:&lt;string&gt;">
  2086     <var>&lt;string&gt;</var></dfn>
  2088    <dd> Render the given string to represent clipped inline content. The
  2089     given string is treated as an independent paragraph for bidi purposes.
  2090   </dl>
  2092   <p class=note> Note: The &lt;string&gt; value, and the 2-value syntax
  2093    "{1,2}" and functionality are all at risk.
  2095   <p> The term "character" is used in this property definition for better
  2096    readability and means "grapheme cluster" <a href="#UAX29"
  2097    rel=biblioentry>[UAX29]<!--{{!UAX29}}--></a> for implementation purposes.
  2099   <p> If there is one value, it applies only to the end line edge. If there
  2100    are two values, the first value applies to the left edge, and the second
  2101    value applies to the right edge.
  2103   <p> For the ellipsis and string values, implementations must hide
  2104    characters and <a
  2105    href="http://www.w3.org/TR/CSS21/visuren.html#inline-boxes"> atomic
  2106    inline-level elements</a> at the applicable edge(s) of the line as
  2107    necessary to fit the ellipsis/string. Place the ellipsis/string
  2108    immediately adjacent to the applicable edge(s) of the remaining inline
  2109    content. The first character or <a
  2110    href="http://www.w3.org/TR/CSS21/visuren.html#inline-boxes"> atomic
  2111    inline-level element</a> on a line must be clipped rather than ellipsed.
  2113   <h4 class="no-num no-toc" id=ellipsing-details>ellipsing details</h4>
  2115   <ul>
  2116    <li> Ellipsing only affects rendering and must not affect layout nor
  2117     dispatching of pointer events.
  2119    <li> The ellipsis is styled and baseline-aligned according to the block.
  2121    <li> Ellipsing occurs after relative positioning and other graphical
  2122     transformations.
  2124    <li> If there is insufficient space for the ellipsis, then clip the
  2125     rendering of the ellipsis itself (on the same side that neutral
  2126     characters on the line would have otherwise been clipped with the
  2127     ‘<code class=css>clip</code>’ value).
  2128   </ul>
  2130   <h4 class="no-num no-toc" id=user-interaction-with-ellipsis>user
  2131    interaction with ellipsis</h4>
  2133   <ul>
  2134    <li>When the user is interacting with content (e.g. editing, selecting,
  2135     scrolling), the user agent may treat text-overflow ‘<code
  2136     class=css>ellipsis</code>’ or string values as ‘<code
  2137     class=css>clip</code>’.
  2139    <li>Selecting the ellipsis should select the ellipsed text. If all of the
  2140     ellipsed text is selected, UAs should show selection of the ellipsis.
  2141     Behavior of partially-selected ellipsed text is up to the UA.
  2142   </ul>
  2144   <div class=example>
  2145    <p style="display:none">Example(s):
  2147    <h4 class="no-num no-toc" id=text-overflow-examples>text-overflow examples</h4>
  2149    <p>These examples demonstrate setting the text-overflow of a block
  2150     container element that has text which overflows its dimensions:
  2152    <h5 class="no-num no-toc" id=sample-css-for-a-div>sample CSS for a div:</h5>
  2154    <pre><code class=css>div { 
  2155   font-family:Helvetica,sans-serif; line-height:1.1;
  2156   width:3.1em; padding:.2em; border:solid .1em black; margin:1em 0;
  2157 }</code></pre>
  2159    <h5 class="no-num no-toc"
  2160     id=sample-html-fragments-renderings-and-you>sample HTML fragments,
  2161     renderings, and your browser:</h5>
  2163    <table border=1 cellpadding=5 style="color:#000;background:#fff;">
  2164     <tbody>
  2165      <tr>
  2166       <th>HTML
  2168       <th>sample rendering
  2170       <th>your browser
  2172      <tr>
  2173       <td>
  2174        <pre><code>&lt;div&gt;
  2175 CSS IS AWESOME, YES
  2176 &lt;/div&gt;
  2177 </code></pre>
  2179       <td> <object data=cssisawesome.png type="image/png"> First, a box with
  2180        text drawing outside of it. </object>
  2182       <td>
  2183        <div
  2184         style="width:3.1em; border:solid .1em black; margin:1em 0; padding:.2em; font-family:Helvetica,sans-serif; line-height:1.1;">CSS
  2185         IS AWESOME, YES</div>
  2187      <tr>
  2188       <td>
  2189        <pre><code>&lt;div style="<a
  2190         href="#clip"><strong>text-overflow:clip;</strong></a> overflow:hidden"&gt;
  2191 CSS IS AWESOME, YES
  2192 &lt;/div&gt;
  2193 </code></pre>
  2195       <td> <object data=cssisaweso.png type="image/png"> Second, a similar
  2196        box with the text clipped outside the box. </object>
  2198       <td>
  2199        <div
  2200         style="width:3.1em; border:solid .1em black; margin:1em 0; padding:.2em; font-family:Helvetica,sans-serif; line-height:1.1; overflow:hidden;text-overflow:clip;">CSS
  2201         IS AWESOME, YES</div>
  2203      <tr>
  2204       <td>
  2205        <pre><code>&lt;div style="<a
  2206         href="#ellipsis"><strong>text-overflow:ellipsis;</strong></a> overflow:hidden"&gt;
  2207 CSS IS AWESOME, YES
  2208 &lt;/div&gt;
  2209 </code></pre>
  2211       <td> <object data=cssisaw.png type="image/png"> Third, a similar box
  2212        with an ellipsis representing the clipped text. </object>
  2214       <td>
  2215        <div
  2216         style="width:3.1em; border:solid .1em black; margin:1em 0; padding:.2em;  font-family:Helvetica,sans-serif; line-height:1.1; overflow:hidden;text-overflow:ellipsis;">CSS
  2217         IS AWESOME, YES</div>
  2219      <tr>
  2220       <td>
  2221        <pre><code>&lt;div style="<a
  2222         href="#ellipsis"><strong>text-overflow:ellipsis;</strong></a> overflow:hidden"&gt;
  2223 NESTED
  2224  &lt;p&gt;PARAGRAPH&lt;/p&gt;
  2225 WON'T ELLIPSE.
  2226 &lt;/div&gt;
  2227 </code></pre>
  2229       <td> <object data=nes.png type="image/png"> Fourth, a box with a nested
  2230        paragraph demonstrating anonymous block boxes equivalency and
  2231        non-inheritance into a nested element. </object>
  2233       <td>
  2234        <div
  2235         style="width:3.1em; border:solid .1em black; margin:1em 0; padding:.2em;  font-family:Helvetica,sans-serif; line-height:1.1; overflow:hidden;text-overflow:ellipsis;">NESTED
  2237         <p>PARAGRAPH</p>
  2238         WON'T ELLIPSE.</div>
  2239    </table>
  2240   </div>
  2242   <p class=note> Note: the side of the line that the ellipsis is placed
  2243    depends on the ‘<code class=property>direction</code>’ of the block.
  2244    E.g. an overflow hidden right-to-left (<code>direction:rtl</code>) block
  2245    clips inline content on the <em>left</em> side, thus would place a
  2246    text-overflow ellipsis on the <em>left</em> to represent that clipped
  2247    content.</p>
  2248   <!-- insert RTL example diagram here to illustrate note. -->
  2250   <h4 class="no-num no-toc"
  2251    id=ellipsis-interaction-with-scrolling-inte>ellipsis interaction with
  2252    scrolling interfaces</h4>
  2254   <p> This section applies to elements with text-overflow other than ‘<code
  2255    class=property>clip</code>’ (non-clip text-overflow) and
  2256    overflow:scroll.
  2258   <p> When an element with non-clip text-overflow has overflow of scroll in
  2259    the inline progression dimension of the text, and the browser provides a
  2260    mechanism for scrolling (e.g. a scrollbar on the element, or a touch
  2261    interface to swipe-scroll, etc.), there are additional implementation
  2262    details that provide a better user experience:
  2264   <p> When an element is scrolled (e.g. by the user, DOM manipulation, or <a
  2265    href="http://www.w3.org/TR/2008/CR-css3-marquee-20081205/#overflow-style">‘<code
  2266    class=property>overflow-style</code>’</a> <a href="#CSS3MARQUEE"
  2267    rel=biblioentry>[CSS3MARQUEE]<!--{{CSS3MARQUEE}}--></a>), more of the
  2268    element's content is shown. The value of text-overflow should not affect
  2269    whether more of the element's content is shown or not. If a non-clip
  2270    text-overflow is set, then as more content is scrolled into view,
  2271    implementations should show whatever additional content fits, only
  2272    truncating content which would otherwise be clipped (or is necessary to
  2273    make room for the ellipsis/string), until the element is scrolled far
  2274    enough to display the edge of the content at which point that content
  2275    should be displayed rather than an ellipsis/string.
  2277   <p> As some content is scrolled into view, it is likely that other content
  2278    may scroll out of view on the other side. If that content's block
  2279    container element is the same that's doing the scrolling, then
  2280    implementations should render an ellipsis/string in place of the clipped
  2281    content, with the same details as described in the value definition above,
  2282    except that the ellipsis/string is drawn in the start (rather than end) of
  2283    the block's direction (per the direction property).
  2285   <p> While the content is being scrolled, implementations may adjust their
  2286    rendering of ellipses/strings (e.g. align to the box edges rather than
  2287    line edges).
  2289   <p> If there is insufficient space for both start and end ellipses/strings,
  2290    then only the end ellipsis/string should be rendered.
  2292   <h2 id=pointing-devices-and-keyboards><span class=secno>9. </span>Pointing
  2293    Devices and Keyboards</h2>
  2295   <h3 id=pointer-interaction><span class=secno>9.1. </span>Pointer
  2296    interaction</h3>
  2298   <h4 id=cursor><span class=secno>9.1.1. </span><a class=property
  2299    href="#cursor0">‘<code class=property>cursor</code>’</a> property</h4>
  2301   <table class=propdef id=propdef-cursor>
  2302    <tbody>
  2303     <tr>
  2304      <th>Name:
  2306      <td><dfn id=cursor0>cursor</dfn>
  2308     <tr>
  2309      <th>Value:
  2311      <td> [ [&lt;uri&gt; [&lt;x&gt; &lt;y&gt;]?,]* <br>
  2312       [ auto | default | none |<br>
  2313       context-menu | help | pointer | progress | wait | <br>
  2314       cell | crosshair | text | vertical-text | <br>
  2315       alias | copy | move | no-drop | not-allowed | <br>
  2316       e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize |
  2317       sw-resize | w-resize | ew-resize | ns-resize | nesw-resize |
  2318       nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out
  2319       <br>
  2320       ] ] | inherit
  2322     <tr>
  2323      <th>Initial:
  2325      <td>auto
  2327     <tr>
  2328      <th>Applies to:
  2330      <td>all elements
  2332     <tr>
  2333      <th>Inherited:
  2335      <td>yes
  2337     <tr>
  2338      <th>Percentages:
  2340      <td>N/A
  2342     <tr>
  2343      <th>Media:
  2345      <td>visual, interactive
  2347     <tr>
  2348      <th>Computed value:
  2350      <td>as specified, except with any relative URLs converted to absolute
  2352     <tr>
  2353      <th>Animatable:
  2355      <td>no
  2356   </table>
  2358   <p>This property specifies the type of cursor to be displayed for the
  2359    pointing device when over the element's border, padding, and content.
  2360    Values have the following meanings:
  2362   <h5 class="no-num no-toc" id=image-cursors>image cursors</h5>
  2364   <dl>
  2365    <dt>&lt;uri&gt;
  2367    <dd>The user agent retrieves the cursor from the resource designated by
  2368     the URI. If the user agent cannot handle the first cursor of a list of
  2369     cursors, it must attempt to handle the second, etc. If the user agent
  2370     cannot handle any user-defined cursor, it must use the cursor keyword at
  2371     the end of the list. The optional &lt;x&gt; and &lt;y&gt; coordinates
  2372     identify the exact position within the image which is the pointer
  2373     position (i.e., the hotspot).
  2375    <dt>&lt;x&gt;
  2377    <dt>&lt;y&gt;
  2379    <dd> Each is a &lt;number&gt;. The x-coordinate and y-coordinate of the
  2380     position in the cursor's coordinate system (left/top relative) which
  2381     represents the precise position that is being pointed to. If the values
  2382     are unspecified, then the intrinsic hotspot defined inside the image
  2383     resource itself is used. If both the values are unspecific and the
  2384     referenced cursor has no defined hotspot, the effect is as if a value of
  2385     "0 0" were specified.
  2386   </dl>
  2388   <h5 class="no-num no-toc" id=general-purpose-cursors>general purpose
  2389    cursors</h5>
  2391   <dl>
  2392    <dt style="cursor:auto">auto
  2394    <dd>The UA determines the cursor to display based on the current context.
  2396    <dt style="cursor:default">default
  2398    <dd>The platform-dependent default cursor. Often rendered as an arrow.
  2400    <dt style="cursor:none">none
  2402    <dd>No cursor is rendered for the element.
  2403   </dl>
  2405   <h5 class="no-num no-toc" id=links-and-status-cursors>links and status
  2406    cursors</h5>
  2408   <dl>
  2409    <dt style="cursor:context-menu">context-menu
  2411    <dd>A context menu is available for the object under the cursor. Often
  2412     rendered as an arrow with a small menu-like graphic next to it.
  2414    <dt style="cursor:help">help
  2416    <dd>Help is available for the object under the cursor. Often rendered as a
  2417     question mark or a balloon.
  2419    <dt style="cursor:pointer">pointer
  2421    <dd>The cursor is a pointer that indicates a link.
  2423    <dt style="cursor:progress">progress
  2425    <dd>A progress indicator. The program is performing some processing, but
  2426     is different from ‘<code class=css><span
  2427     class=value>wait</span></code>’ in that the user may still interact
  2428     with the program. Often rendered as a spinning beach ball, or an arrow
  2429     with a watch or hourglass.
  2431    <dt style="cursor:wait">wait
  2433    <dd>Indicates that the program is busy and the user should wait. Often
  2434     rendered as a watch or hourglass.
  2435   </dl>
  2437   <h5 class="no-num no-toc" id=selection-cursors>selection cursors</h5>
  2439   <dl>
  2440    <dt style="cursor:cell">cell
  2442    <dd>Indicates that a cell or set of cells may be selected. Often rendered
  2443     as a thick plus-sign with a dot in the middle.
  2445    <dt style="cursor:crosshair">crosshair
  2447    <dd>A simple crosshair (e.g., short line segments resembling a "+" sign).
  2448     Often used to indicate a two dimensional bitmap selection mode.
  2450    <dt style="cursor:text">text
  2452    <dd>Indicates text that may be selected. Often rendered as a vertical
  2453     I-beam. User agents may automatically display a horizontal I-beam/cursor
  2454     (e.g. same as the ‘<code class=css><span
  2455     class=value>vertical-text</span></code>’ keyword) for vertical text, or
  2456     for that matter, any angle of I-beam/cursor for text that is rendered at
  2457     any particular angle.
  2459    <dt style="cursor:vertical-text">vertical-text
  2461    <dd>Indicates vertical-text that may be selected. Often rendered as a
  2462     horizontal I-beam.
  2463   </dl>
  2465   <h5 class="no-num no-toc" id=drag-and-drop-cursors>drag and drop cursors</h5>
  2467   <dl>
  2468    <dt style="cursor:alias">alias
  2470    <dd>Indicates an alias of/shortcut to something is to be created. Often
  2471     rendered as an arrow with a small curved arrow next to it.
  2473    <dt style="cursor:copy">copy
  2475    <dd>Indicates something is to be copied. Often rendered as an arrow with a
  2476     small plus sign next to it.
  2478    <dt style="cursor:move">move
  2480    <dd>Indicates something is to be moved.
  2482    <dt style="cursor:no-drop">no-drop
  2484    <dd> Indicates that the dragged item cannot be dropped at the current
  2485     cursor location. Often rendered as a hand or pointer with a small circle
  2486     with a line through it.
  2488    <dt style="cursor:not-allowed">not-allowed
  2490    <dd>Indicates that the requested action will not be carried out. Often
  2491     rendered as a circle with a line through it.
  2492   </dl>
  2494   <h5 class="no-num no-toc" id=resizing-and-scrolling-cursors>resizing and
  2495    scrolling cursors</h5>
  2497   <dl>
  2498    <dt> <span style="cursor:e-resize">e-resize</span>, <span
  2499     style="cursor:n-resize">n-resize</span>, <span
  2500     style="cursor:ne-resize">ne-resize</span>, <span
  2501     style="cursor:nw-resize">nw-resize</span>, <span
  2502     style="cursor:s-resize">s-resize</span>, <span
  2503     style="cursor:se-resize">se-resize</span>, <span
  2504     style="cursor:sw-resize">sw-resize</span>, <span
  2505     style="cursor:w-resize">w-resize</span>
  2507    <dd>Indicates that some edge is to be moved. For example, the ‘<code
  2508     class=property>se-resize</code>’ cursor is used when the movement
  2509     starts from the south-east corner of the box.
  2511    <dt> <span style="cursor:ew-resize">ew-resize</span>, <span
  2512     style="cursor:ns-resize">ns-resize</span>, <span
  2513     style="cursor:nesw-resize">nesw-resize</span>, <span
  2514     style="cursor:nwse-resize">nwse-resize</span>
  2516    <dd>Indicates a bidirectional resize cursor.
  2518    <dt style="cursor:col-resize">col-resize
  2520    <dd>Indicates that the item/column can be resized horizontally. Often
  2521     rendered as arrows pointing left and right with a vertical bar separating
  2522     them.
  2524    <dt style="cursor:row-resize">row-resize
  2526    <dd>Indicates that the item/row can be resized vertically. Often rendered
  2527     as arrows pointing up and down with a horizontal bar separating them.
  2529    <dt style="cursor:all-scroll">all-scroll
  2531    <dd>Indicates that the something can be scrolled in any direction. Often
  2532     rendered as arrows pointing up, down, left, and right with a dot in the
  2533     middle.
  2534   </dl>
  2536   <h5 class="no-num no-toc" id=zooming-cursors>zooming cursors</h5>
  2538   <dl>
  2539    <dt> <span style="cursor:zoom-in"> zoom-in</span>, <span
  2540     style="cursor:zoom-out"> zoom-out</span>
  2542    <dd> Indicates that something can be zoomed (magnified) in or out, and
  2543     often rendered as a magnifying glass with a "+" or "-" in the center of
  2544     the glass, for ‘<code class=property>zoom-in</code>’ and ‘<code
  2545     class=property>zoom-out</code>’ respectively.
  2546   </dl>
  2548   <p>The UA may treat unsupported values as ‘<code class=css><span
  2549    class=value>auto</span></code>’. E.g. on platforms that do not have a
  2550    concept of a ‘<code class=css><span
  2551    class=value>context-menu</span></code>’ cursor, the UA may render
  2552    ‘<code class=css><span class=value>default</span></code>’ or whatever
  2553    is appropriate.
  2555   <div class=example>
  2556    <h5 class="no-num no-toc" id=example-cursor-fallback>Example: cursor
  2557     fallback</h5>
  2559    <p>Here is an example of using several cursor values.
  2561    <pre><code class=css>
  2562 :link,:visited { 
  2563     cursor: url(example.svg#linkcursor), 
  2564             url(hyper.cur),
  2565             url(hyper.png) 2 3, 
  2566             pointer 
  2568 </code></pre>
  2570    <p>This example sets the cursor on all hyperlinks (whether visited or not)
  2571     to an external <a
  2572     href="http://www.w3.org/TR/SVG/interact.html#CursorElement">SVG
  2573     cursor</a> (<a href="#SVG10" rel=biblioentry>[SVG10]<!--{{SVG10}}--></a>,
  2574     section 16.8.3). User agents that don't support SVG cursors would simply
  2575     skip to the next value and attempt to use the "hyper.cur" cursor. If that
  2576     cursor format was also not supported, the UA could attempt to use the
  2577     "hyper.png" cursor with the explicit hot spot. Finally if the UA does not
  2578     support any of those image cursor formats, the UA would skip to the last
  2579     value and simply render the ‘<code class=css><span
  2580     class=value>pointer</span></code>’ cursor.
  2581   </div>
  2583   <h3 id=keyboard><span class=secno>9.2. </span>Keyboard control</h3>
  2585   <h4 id=nav-index><span class=secno>9.2.1. </span>Sequential navigation
  2586    order: the <a class=property href="#nav-index0">‘<code
  2587    class=property>nav-index</code>’</a> property</h4>
  2589   <p>The <a class=property href="#nav-index0">‘<code
  2590    class=property>nav-index</code>’</a> property is an input-method-neutral
  2591    way of specifying the sequential navigation order (also known as "tabbing
  2592    order").
  2594   <table class=propdef id=propdef-nav-index>
  2595    <tbody>
  2596     <tr>
  2597      <th>Name:
  2599      <td><dfn id=nav-index0>nav-index</dfn>
  2601     <tr>
  2602      <th>Value:
  2604      <td>auto | &lt;number&gt; | inherit
  2606     <tr>
  2607      <th>Initial:
  2609      <td>auto
  2611     <tr>
  2612      <th>Applies to:
  2614      <td>all enabled elements
  2616     <tr>
  2617      <th>Inherited:
  2619      <td>no
  2621     <tr>
  2622      <th>Percentages:
  2624      <td>n/a
  2626     <tr>
  2627      <th>Media:
  2629      <td>interactive
  2631     <tr>
  2632      <th>Computed value:
  2634      <td>specified value.
  2636     <tr>
  2637      <th>Animatable:
  2639      <td>as <a
  2640       href="http://dev.w3.org/csswg/css3-transitions/#animtype-number">number</a>
  2641   </table>
  2643   <dl>
  2644    <dt>auto
  2646    <dd>The element's sequential navigation order is assigned automatically by
  2647     the user agent.
  2649    <dt>&lt;number&gt;
  2651    <dd>The number (which is non-zero and positive) indicates the sequential
  2652     navigation order for the element. ‘<code class=css><span
  2653     class=value>1</span></code>’ means first. Elements with the same
  2654     nav-index value are navigated in document order when that nav-index value
  2655     is being navigated.
  2656   </dl>
  2658   <p>This property is a replacement for the HTML4/XHTML1 attribute ‘<code
  2659    class=css><a
  2660    href="http://www.w3.org/TR/html401/interact/forms.html#h-17.11.1">tabindex</a></code>’
  2661    (<a href="#HTML401" rel=biblioentry>[HTML401]<!--{{HTML401}}--></a>,
  2662    section 17.11.1). Borrowed and slightly rephrased from the HTML4
  2663    Recommendation:
  2665   <p> This property specifies the position of the current element in the
  2666    sequential navigation order for the current document.
  2668   <p> The sequential navigation order defines the order in which elements
  2669    will receive focus when navigated by the user via the keyboard. The
  2670    sequential navigation order may include elements nested within other
  2671    elements.
  2673   <p> Elements that may receive focus should be navigated by user agents
  2674    according to the following rules:
  2676   <ol>
  2677    <li>Those elements that support the nav-index property and assign a
  2678     positive value to it are navigated first. Navigation proceeds from the
  2679     element with the lowest nav-index value to the element with the highest
  2680     value. Values need not be sequential nor must they begin with any
  2681     particular value. Elements that have identical nav-index values should be
  2682     navigated in document order.
  2684    <li>Those elements that do not support the nav-index property or support
  2685     it and assign it a value of ‘<code class=css><span
  2686     class=value>auto</span></code>’ are navigated next. These elements are
  2687     navigated in document order.
  2689    <li>Elements that are disabled do not participate in the sequential
  2690     navigation order.
  2691   </ol>
  2693   <p> The actual key sequence that causes sequential navigation or element
  2694    activation depends on the configuration of the user agent (e.g., the "tab"
  2695    key is often used for sequential navigation, and the "enter" key is used
  2696    to activate a selected element).
  2698   <p> User agents may also define key sequences to navigate the sequential
  2699    navigation order in reverse. When the end (or beginning) of the tabbing
  2700    order is reached, user agents may circle back to the beginning (or end).
  2701    The key combination "shift-tab" is often used for reverse sequential
  2702    navigation.
  2704   <p class=note> Note: The ‘<a href="#nav-index0"><code
  2705    class=property>nav-index</code></a>’ property is at risk.
  2707   <h4 id=nav-dir><span class=secno>9.2.2. </span>Directional focus
  2708    navigation: the <a class=property href="#nav-up">‘<code
  2709    class=property>nav-up</code>’</a>, <a class=property
  2710    href="#nav-right">‘<code class=property>nav-right</code>’</a>, <a
  2711    class=property href="#nav-down">‘<code
  2712    class=property>nav-down</code>’</a>, <a class=property
  2713    href="#nav-left">‘<code class=property>nav-left</code>’</a> properties</h4>
  2715   <table class=propdef>
  2716    <tbody>
  2717     <tr>
  2718      <th>Name:
  2720      <td><dfn id=nav-up>nav-up</dfn>, <dfn id=nav-right>nav-right</dfn>, <dfn
  2721       id=nav-down>nav-down</dfn>, <dfn id=nav-left>nav-left</dfn>
  2723     <tr>
  2724      <th>Value:
  2726      <td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? |
  2727       inherit
  2729     <tr>
  2730      <th>Initial:
  2732      <td>auto
  2734     <tr>
  2735      <th>Applies to:
  2737      <td>all enabled elements
  2739     <tr>
  2740      <th>Inherited:
  2742      <td>no
  2744     <tr>
  2745      <th>Percentages:
  2747      <td>N/A
  2749     <tr>
  2750      <th>Media:
  2752      <td>interactive
  2754     <tr>
  2755      <th>Computed value:
  2757      <td>as specified
  2759     <tr>
  2760      <th>Animatable:
  2762      <td>no
  2763   </table>
  2765   <dl>
  2766    <dt>auto
  2768    <dd>The user agent automatically determines which element to navigate the
  2769     focus to in response to directional navigational input.
  2771    <dt>&lt;id&gt;
  2773    <dd>
  2774     <p>The &lt;id&gt; value consists of a ‘<code
  2775      class=css><code>#</code></code>’ character followed by an identifier,
  2776      similar to a fragment identifier in a URL. It indicates the element to
  2777      which the focus is navigated to in response to directional navigation
  2778      input respective to the specific property.
  2780     <p> If the &lt;id&gt; refers to the currently focused element, the
  2781      directional navigation input respective to the nav- property is ignored
  2782      — there is no need to refocus the same element.
  2784    <dt>&lt;target-name&gt;
  2786    <dd> The &lt;target-name&gt; parameter indicates the target frame for the
  2787     focus navigation. It is a string and it cannot start with the underscore
  2788     "_" character. If the specified target frame does not exist, the
  2789     parameter will be treated as the keyword ‘<code class=css><span
  2790     class=value>current</span></code>’, which means to simply use the frame
  2791     that the element is in. The keyword ‘<code class=css><span
  2792     class=value>root</span></code>’ indicates that the user agent should
  2793     target the full window.
  2794   </dl>
  2796   <p>User agents for devices with directional navigation keys respond by
  2797    navigating the focus according to four respective nav-* directional
  2798    navigation properties (nav-up, nav-right, nav-down, nav-left). This
  2799    specification does not define which keys of a device are directional
  2800    navigational keys.
  2802   <div class=note>
  2803    <p> <em><strong>Note.</strong> Typical personal computers have keyboards
  2804     with four arrow keys. One possible implementation would be to use those
  2805     four arrow keys for directional navigation. For accessibility and user
  2806     convenience, user agents should allow configuration of which keys on a
  2807     keyboard are used for directional navigation. </em>
  2808   </div>
  2810   <div class=example>
  2811    <h5 class="no-num no-toc" id=example-positioned-buttons>Example:
  2812     positioned buttons</h5>
  2814    <p>Here is an example of buttons positioned in a diamond shape whose
  2815     navigation order and directional focus navigation is set in such a way to
  2816     navigate the focus clockwise (or counter-clockwise) around the diamond
  2817     shape when the user chooses to navigate sequentially or directionally.
  2819    <pre><code class=css>
  2820 button { position:absolute }
  2822 button#b1 {
  2823 	top:0; left:50%;
  2824 	nav-index:1;
  2825 	nav-right:#b2; nav-left:#b4;
  2826 	nav-down:#b2; nav-up:#b4;
  2829 button#b2 {
  2830 	top:50%; left:100%;
  2831 	nav-index:2;
  2832 	nav-right:#b3; nav-left:#b1;
  2833 	nav-down:#b3; nav-up:#b1;
  2836 button#b3 {
  2837 	top:100%; left:50%;
  2838 	nav-index:3;
  2839 	nav-right:#b4; nav-left:#b2;
  2840 	nav-down:#b4; nav-up:#b2;
  2843 button#b4 {
  2844 	top:50%; left:0;
  2845 	nav-index:4;
  2846 	nav-right:#b1; nav-left:#b3;
  2847 	nav-down:#b1; nav-up:#b3;
  2849 </code></pre>
  2851    <p>Whatever markup sequence the buttons may have (which is not specified
  2852     in this example) is irrelevant in this case because they are positioned,
  2853     and yet, it is still important to ensure focus navigation behaviors which
  2854     relate reasonably to the specified layout.
  2855   </div>
  2857   <p class=note> Note: The ‘<a href="#nav-up"><code
  2858    class=property>nav-up</code></a>’, ‘<a href="#nav-right"><code
  2859    class=property>nav-right</code></a>’, ‘<a href="#nav-down"><code
  2860    class=property>nav-down</code></a>’, and ‘<a href="#nav-left"><code
  2861    class=property>nav-left</code></a>’ properties are at risk.
  2863   <h4 id=input-method-editor><span class=secno>9.2.3. </span>Input method
  2864    editor: the <a class=property href="#ime-mode">‘<code
  2865    class=property>ime-mode</code>’</a> property</h4>
  2867   <table class=propdef>
  2868    <tbody>
  2869     <tr>
  2870      <th>Name:
  2872      <td><dfn id=ime-mode>ime-mode</dfn>
  2874     <tr>
  2875      <th>Value:
  2877      <td>auto | normal | active | inactive | disabled | inherit
  2879     <tr>
  2880      <th>Initial:
  2882      <td>auto
  2884     <tr>
  2885      <th>Applies to:
  2887      <td>text fields
  2889     <tr>
  2890      <th>Inherited:
  2892      <td>no
  2894     <tr>
  2895      <th>Percentages:
  2897      <td>N/A
  2899     <tr>
  2900      <th>Media:
  2902      <td>interactive
  2904     <tr>
  2905      <th>Computed value:
  2907      <td>as specified
  2909     <tr>
  2910      <th>Animatable:
  2912      <td>no
  2913   </table>
  2915   <p> The ‘<a href="#ime-mode"><code class=property>ime-mode</code></a>’
  2916    CSS property controls the state of the input method editor for text
  2917    fields.
  2919   <dl>
  2920    <dt>auto
  2922    <dd> No change is made to the current input method editor state. This is
  2923     the default.
  2925    <dt>normal
  2927    <dd> The IME state should be normal; this value can be used in a user
  2928     style sheet to override the page setting.
  2930    <dt>active
  2932    <dd> The input method editor is initially active; text entry is performed
  2933     using it unless the user specifically dismisses it.
  2935    <dt>inactive
  2937    <dd> The input method editor is initially inactive, but the user may
  2938     activate it if they wish.
  2940    <dt>disabled
  2942    <dd> The input method editor is disabled and may not be activated by the
  2943     user.
  2944   </dl>
  2946   <div class=example>
  2947    <h5 class="no-num no-toc"
  2948     id=example-disabling-input-method-support>Example: disabling input method
  2949     support</h5>
  2951    <pre><code
  2952     class=html>&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;initial value&quot; style=&quot;ime-mode: disabled&quot;&gt;
  2953 </code></pre>
  2955    <p> This example disables input method support for a field; this might be
  2956     necessary for fields that enter data into a database that doesn't support
  2957     extended character sets, for example.
  2958   </div>
  2960   <div class=example>
  2961    <h5 class="no-num no-toc" id=example-user-preference>Example: user
  2962     preference</h5>
  2964    <pre><code class=css>input[type=password] {
  2965     ime-mode: auto !important;
  2967 </code></pre>
  2969    <p> This example CSS may be placed into a user style sheet file to force
  2970     password input fields to behave in a default manner.
  2971   </div>
  2973   <p class=note> Note: In general, it's not appropriate for a public web site
  2974    to manipulate the IME mode setting. This property should be used for web
  2975    applications and the like. Authors should not rely on disabling IME to
  2976    prevent extended characters from passing through a form. Even with IME
  2977    disabled, users can still paste extended characters into a form's fields.
  2979   <p class=note> Note: The ‘<a href="#ime-mode"><code
  2980    class=property>ime-mode</code></a>’ property is at risk.
  2982   <hr title="Separator from footer">
  2984   <h2 class=no-num id=acknowledgments>Appendix A. Acknowledgments</h2>
  2986   <p>This appendix is <em>informative</em>.
  2988   <p>Thanks to feedback and contributions from L. David Baron, Bert Bos,
  2989    Matthew Brealey, Ada Chan, Michael Day, Micah Dubinko, Elika E., Steve
  2990    Falkenburg, Al Gilman, Ian Hickson, Bjoern Hoehrmann, David Hyatt, Richard
  2991    Ishida, Sho Kuwamoto, Susan Lesch, Peter Linss, Brad Pettit, Alexander
  2992    Savenkov, Sebastian Schnitzenbaumer, Etan Wexler, David Woolley and Domel.
  2994   <h2 class=no-num id=references>Appendix B. Bibiliography</h2>
  2996   <h3 class="no-num no-toc" id=normative-references>Normative References</h3>
  2997   <!--begin-normative-->
  2998   <!-- Sorted by label -->
  3000   <dl class=bibliography>
  3001    <dt style="display: none"><!-- keeps the doc valid if the DL is empty -->
  3002     <!---->
  3004    <dt id=CSS21>[CSS21]
  3006    <dd>Bert Bos; et al. <a
  3007     href="http://www.w3.org/TR/2011/REC-CSS2-20110607/"><cite>Cascading Style
  3008     Sheets Level 2 Revision 1 (CSS 2.1) Specification.</cite></a> 7 June
  3009     2011. W3C Recommendation. URL: <a
  3010     href="http://www.w3.org/TR/2011/REC-CSS2-20110607/">http://www.w3.org/TR/2011/REC-CSS2-20110607/</a>
  3011    </dd>
  3012    <!---->
  3014    <dt id=CSS3COLOR>[CSS3COLOR]
  3016    <dd>Tantek Çelik; Chris Lilley; L. David Baron. <a
  3017     href="http://www.w3.org/TR/2011/REC-css3-color-20110607"><cite>CSS Color
  3018     Module Level 3.</cite></a> 7 June 2011. W3C Recommendation. URL: <a
  3019     href="http://www.w3.org/TR/2011/REC-css3-color-20110607">http://www.w3.org/TR/2011/REC-css3-color-20110607</a>
  3020    </dd>
  3021    <!---->
  3023    <dt id=RFC1738>[RFC1738]
  3025    <dd>T. Berners-Lee; L. Masinter; M. McCahill. <a
  3026     href="http://www.ietf.org/rfc/rfc1738.txt"><cite>Uniform Resource
  3027     Locators (URL).</cite></a> December 1994. Internet RFC 1738. URL: <a
  3028     href="http://www.ietf.org/rfc/rfc1738.txt">http://www.ietf.org/rfc/rfc1738.txt</a>
  3029    </dd>
  3030    <!---->
  3032    <dt id=RFC1808>[RFC1808]
  3034    <dd>R. Fielding. <a
  3035     href="http://www.ietf.org/rfc/rfc1808.txt"><cite>Relative Uniform
  3036     Resource Locators.</cite></a> June 1995. Internet RFC 1808. (Obsoleted by
  3037     RFC 3986) URL: <a
  3038     href="http://www.ietf.org/rfc/rfc1808.txt">http://www.ietf.org/rfc/rfc1808.txt</a>
  3039    </dd>
  3040    <!---->
  3042    <dt id=RFC2119>[RFC2119]
  3044    <dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
  3045     words for use in RFCs to Indicate Requirement Levels.</cite></a> Internet
  3046     RFC 2119. URL: <a
  3047     href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
  3048    </dd>
  3049    <!---->
  3051    <dt id=SELECT>[SELECT]
  3053    <dd>Tantek Çelik; et al. <a
  3054     href="http://www.w3.org/TR/2011/REC-css3-selectors-20110929/"><cite>Selectors
  3055     Level 3.</cite></a> 29 September 2011. W3C Recommendation. URL: <a
  3056     href="http://www.w3.org/TR/2011/REC-css3-selectors-20110929/">http://www.w3.org/TR/2011/REC-css3-selectors-20110929/</a>
  3057    </dd>
  3058    <!---->
  3060    <dt id=UAX29>[UAX29]
  3062    <dd>Mark Davis. <a
  3063     href="http://www.unicode.org/reports/tr29/"><cite>Unicode Text
  3064     Segmentation.</cite></a> 12 September 2012. Unicode Standard Annex #29.
  3065     URL: <a
  3066     href="http://www.unicode.org/reports/tr29/">http://www.unicode.org/reports/tr29/</a>
  3067    </dd>
  3068    <!---->
  3070    <dt id=URI>[URI]
  3072    <dd>T. Berners-Lee; R. Fielding; L. Masinter. <a
  3073     href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource
  3074     Identifiers (URI): generic syntax.</cite></a> January 2005. Internet RFC
  3075     3986. URL: <a
  3076     href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
  3077    </dd>
  3078    <!---->
  3079   </dl>
  3080   <!--end-normative-->
  3082   <h3 class="no-num no-toc" id=informative-references>Informative References</h3>
  3083   <!--begin-informative-->
  3084   <!-- Sorted by label -->
  3086   <dl class=bibliography>
  3087    <dt style="display: none"><!-- keeps the doc valid if the DL is empty -->
  3088     <!---->
  3090    <dt id=CSS1>[CSS1]
  3092    <dd>Håkon Wium Lie; Bert Bos. <a
  3093     href="http://www.w3.org/TR/2008/REC-CSS1-20080411"><cite>Cascading Style
  3094     Sheets (CSS1) Level 1 Specification.</cite></a> 11 April 2008. W3C
  3095     Recommendation. URL: <a
  3096     href="http://www.w3.org/TR/2008/REC-CSS1-20080411">http://www.w3.org/TR/2008/REC-CSS1-20080411</a>
  3097    </dd>
  3098    <!---->
  3100    <dt id=CSS2>[CSS2]
  3102    <dd>Ian Jacobs; et al. <a
  3103     href="http://www.w3.org/TR/2008/REC-CSS2-20080411"><cite>Cascading Style
  3104     Sheets, level 2 (CSS2) Specification.</cite></a> 11 April 2008. W3C
  3105     Recommendation. URL: <a
  3106     href="http://www.w3.org/TR/2008/REC-CSS2-20080411">http://www.w3.org/TR/2008/REC-CSS2-20080411</a>
  3107    </dd>
  3108    <!---->
  3110    <dt id=CSS3GENCON>[CSS3GENCON]
  3112    <dd>Ian Hickson. <a
  3113     href="http://www.w3.org/TR/2003/WD-css3-content-20030514"><cite>CSS3
  3114     Generated and Replaced Content Module.</cite></a> 14 May 2003. W3C
  3115     Working Draft. (Work in progress.) URL: <a
  3116     href="http://www.w3.org/TR/2003/WD-css3-content-20030514">http://www.w3.org/TR/2003/WD-css3-content-20030514</a>
  3117    </dd>
  3118    <!---->
  3120    <dt id=CSS3MARQUEE>[CSS3MARQUEE]
  3122    <dd>Bert Bos. <a
  3123     href="http://www.w3.org/TR/2008/CR-css3-marquee-20081205"><cite>CSS
  3124     Marquee Module Level 3.</cite></a> 5 December 2008. W3C Candidate
  3125     Recommendation. (Work in progress.) URL: <a
  3126     href="http://www.w3.org/TR/2008/CR-css3-marquee-20081205">http://www.w3.org/TR/2008/CR-css3-marquee-20081205</a>
  3127    </dd>
  3128    <!---->
  3130    <dt id=CSSUI>[CSSUI]
  3132    <dd>Tantek Çelik. <a
  3133     href="http://www.w3.org/TR/2002/WD-css3-userint-20020802"><cite>User
  3134     Interface for CSS3.</cite></a> 16 February 2000. W3C Working Draft.
  3135     (Superseded) URL: <a
  3136     href="http://www.w3.org/TR/2002/WD-css3-userint-20020802">http://www.w3.org/TR/2002/WD-css3-userint-20020802</a>
  3137    </dd>
  3138    <!---->
  3140    <dt id=HTML401>[HTML401]
  3142    <dd>Dave Raggett; Arnaud Le Hors; Ian Jacobs. <a
  3143     href="http://www.w3.org/TR/1999/REC-html401-19991224"><cite>HTML 4.01
  3144     Specification.</cite></a> 24 December 1999. W3C Recommendation. URL: <a
  3145     href="http://www.w3.org/TR/1999/REC-html401-19991224">http://www.w3.org/TR/1999/REC-html401-19991224</a>
  3146    </dd>
  3147    <!---->
  3149    <dt id=HTML5>[HTML5]
  3151    <dd>Ian Hickson. <a
  3152     href="http://www.w3.org/TR/2012/CR-html5-20121217/"><cite>HTML5.</cite></a>
  3153     17 December 2012. W3C Candidate Recommendation. (Work in progress.) URL:
  3154     <a
  3155     href="http://www.w3.org/TR/2012/CR-html5-20121217/">http://www.w3.org/TR/2012/CR-html5-20121217/</a>
  3156    </dd>
  3157    <!---->
  3159    <dt id=SVG10>[SVG10]
  3161    <dd>Jon Ferraiolo. <a
  3162     href="http://www.w3.org/TR/2001/REC-SVG-20010904"><cite>Scalable Vector
  3163     Graphics (SVG) 1.0 Specification.</cite></a> 4 September 2001. W3C
  3164     Recommendation. URL: <a
  3165     href="http://www.w3.org/TR/2001/REC-SVG-20010904">http://www.w3.org/TR/2001/REC-SVG-20010904</a>
  3166    </dd>
  3167    <!---->
  3169    <dt id=SVG11>[SVG11]
  3171    <dd>Erik Dahlström; et al. <a
  3172     href="http://www.w3.org/TR/2011/REC-SVG11-20110816/"><cite>Scalable
  3173     Vector Graphics (SVG) 1.1 (Second Edition).</cite></a> 16 August 2011.
  3174     W3C Recommendation. URL: <a
  3175     href="http://www.w3.org/TR/2011/REC-SVG11-20110816/">http://www.w3.org/TR/2011/REC-SVG11-20110816/</a>
  3176    </dd>
  3177    <!---->
  3179    <dt id=UAAG10>[UAAG10]
  3181    <dd>Ian Jacobs; Jon Gunderson; Eric Hansen. <a
  3182     href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/"><cite>User Agent
  3183     Accessibility Guidelines 1.0.</cite></a> 17 December 2002. W3C
  3184     Recommendation. URL: <a
  3185     href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">http://www.w3.org/TR/2002/REC-UAAG10-20021217/</a>
  3186    </dd>
  3187    <!---->
  3189    <dt id=XFORMS11>[XFORMS11]
  3191    <dd>John M. Boyer. <a
  3192     href="http://www.w3.org/TR/2009/REC-xforms-20091020/"><cite>XForms
  3193     1.1.</cite></a> 20 October 2009. W3C Recommendation. URL: <a
  3194     href="http://www.w3.org/TR/2009/REC-xforms-20091020/">http://www.w3.org/TR/2009/REC-xforms-20091020/</a>
  3195    </dd>
  3196    <!---->
  3198    <dt id=XHTML10>[XHTML10]
  3200    <dd>Steven Pemberton. <a
  3201     href="http://www.w3.org/TR/2002/REC-xhtml1-20020801"><cite>XHTML™ 1.0
  3202     The Extensible HyperText Markup Language (Second Edition).</cite></a> 1
  3203     August 2002. W3C Recommendation. URL: <a
  3204     href="http://www.w3.org/TR/2002/REC-xhtml1-20020801">http://www.w3.org/TR/2002/REC-xhtml1-20020801</a>
  3205    </dd>
  3206    <!---->
  3208    <dt id=XHTML11>[XHTML11]
  3210    <dd>Murray Altheim; Shane McCarron. <a
  3211     href="http://www.w3.org/TR/2001/REC-xhtml11-20010531"><cite>XHTML™ 1.1
  3212     - Module-based XHTML.</cite></a> 31 May 2001. W3C Recommendation. URL: <a
  3213     href="http://www.w3.org/TR/2001/REC-xhtml11-20010531">http://www.w3.org/TR/2001/REC-xhtml11-20010531</a>
  3214    </dd>
  3215    <!---->
  3217    <dt id=XML10>[XML10]
  3219    <dd>C. M. Sperberg-McQueen; et al. <a
  3220     href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible
  3221     Markup Language (XML) 1.0 (Fifth Edition).</cite></a> 26 November 2008.
  3222     W3C Recommendation. URL: <a
  3223     href="http://www.w3.org/TR/2008/REC-xml-20081126/">http://www.w3.org/TR/2008/REC-xml-20081126/</a>
  3224    </dd>
  3225    <!---->
  3226   </dl>
  3227   <!--end-informative-->
  3229   <h2 class=no-num id=changes>Appendix C. Changes</h2>
  3231   <p>This appendix is <em>informative</em>.
  3233   <p>In general this draft contains numerous editorial/grammatical/spelling
  3234    corrections, and several new informative examples. This appendix describes
  3235    minor functional changes from the <a
  3236    href="http://www.w3.org/TR/2004/CR-css3-ui-20040511/">Candidate
  3237    Recommendation (CR) of 11 May 2004</a> that were made to reflect
  3238    implementer adoption (or lack thereof) in the seven years since. In
  3239    particular, changes since the CR fall into one of three categories:
  3241   <ul>
  3242    <li>Minor refinements to features based on implementation experience.
  3243     <!-- e.g. cursor applying to border, padding, content areas -->
  3245    <li>Dropping features that were not implemented, or were insufficiently
  3246     implemented to exit CR.</li>
  3247    <!-- e.g. System Appearance -->
  3249    <li>Adding a small number of new but already interoperably implemented
  3250     features. <!-- e.g. text-overflow, ime-mode -->
  3251   </ul>
  3253   <h3 class=no-num id=changes-list>List of substantial changes</h3>
  3255   <ul>
  3256    <li>System Appearance has been dropped, including appearance values &amp;
  3257     property, and system fonts / extension of the ‘<code
  3258     class=property>font</code>’ property shorthand.
  3260    <li>The ::selection pseudo-element has been dropped since it was dropped
  3261     from Selectors after testing found interoperability problems and further
  3262     details to explore/define.
  3264    <li>‘<a href="#box-sizing0"><code class=css><span
  3265     class=property>box-sizing</span></code></a>’ property. Added ‘<code
  3266     class=property>padding-box</code>’ value.
  3268    <li>‘<a href="#cursor0"><code class=css><span
  3269     class=property>cursor</span></code></a>’ property. Added detail about
  3270     applying to the border, padding, and content areas of the element.
  3272    <li>‘<a href="#ime-mode"><code class=css><span
  3273     class=property>ime-mode</span></code></a>’ property - new!
  3275    <li>‘<a href="#text-overflow0"><code class=css><span
  3276     class=property>text-overflow</span></code></a>’ property - new!
  3277   </ul>
  3279   <h2 class=no-num id=appendix-d.-default-style-sheet-addition>Appendix D.
  3280    Default style sheet additions for HTML</h2>
  3282   <p>This appendix is <em>informative</em>.
  3284   <p>Potential additions to the base style sheet to express HTML form
  3285    controls, and a few dynamic presentation attributes:
  3287   <pre class=html4ss>
  3289 :enabled:focus {
  3290  outline: 2px inset;
  3293 button,
  3294 input[type=button],
  3295 input[type=reset],
  3296 input[type=submit],
  3297 input[type=checkbox],
  3298 input[type=radio],
  3299 textarea,
  3300 input,
  3301 input[type=text],
  3302 input[type=hidden],
  3303 input[type=password],
  3304 input[type=image]
  3306  display: inline-block;
  3307  white-space: nowrap;
  3310 button
  3312 /* white space handling of BUTTON tags in particular */
  3313  white-space:normal;
  3316 input[type=reset]
  3318 /* default content of HTML4/XHTML1 input type=reset button */
  3319  content: "Reset";
  3322 input[type=submit]
  3324 /* default content of HTML4/XHTML1 input type=submit button */
  3325  content: "Submit";
  3328 input[type=button],
  3329 input[type=reset][value],
  3330 input[type=submit][value]
  3332 /* text content/labels of HTML4/XHTML1 "input" buttons */
  3333  content: attr(value);
  3336 textarea
  3338 /* white space handling of TEXTAREA tags in particular */
  3339  white-space:pre-wrap;
  3342 input[type=hidden] 
  3344 /* appearance of the HTML4/XHTML1 hidden text field in particular */
  3345  display: none;
  3348 input[type=image]
  3350  display: inline-block;
  3351  content: attr(src,url);
  3352  border: none;
  3355 select[size]
  3357 /* HTML4/XHTML1 &lt;select&gt; w/ size more than 1 - appearance of list */
  3358  display: inline-block;
  3359  height: attr(size,em);
  3362 select,select[size=1]
  3364 /* HTML4/XHTML1 &lt;select&gt; without size, or size=1 - popup-menu */
  3365  display: inline-block;
  3366  height: 1em;
  3367  overflow: hidden;
  3370 select[size]:active
  3372 /* active HTML4/XHTML &lt;select&gt; w/ size more than 1 - appearance of active list */
  3373  display: inline-block;
  3376 optgroup,option
  3378  display: block;
  3379  white-space: nowrap;
  3382 optgroup[label],option[label] 
  3384  content: attr(label);
  3387 option[selected]::before 
  3389  display: inline;
  3390  content: check; 
  3393 *[tabindex] { nav-index:attr(tabindex,number) }
  3396 /* Though FRAME resizing is not directly addressed by this specification,
  3397    the following rules may provide an approximation of reasonable behavior. */
  3399 /*
  3401 frame { resize:both }
  3402 frame[noresize] { resize:none }
  3404 */
  3406 </pre>
  3408   <h2 class=no-num id=appendix-e-test-suite>Appendix E: Test Suite</h2>
  3410   <p>This appendix is <em>informative</em>.
  3412   <p> This specification shall refer to a test suite written according to the
  3413    <a href="http://www.w3.org/Style/CSS/Test/testsuitedocumentation">CSS Test
  3414    Suite Documentation</a> and following the <a
  3415    href="http://www.w3.org/Style/CSS/Test/guidelines.html">CSS2.1 Test Case
  3416    Authoring Guidelines</a>. The test suite shall allow user agents to verify
  3417    their basic conformance to the specification. This test suite does not
  3418    pretend to be exhaustive and does not cover all possible combinations of
  3419    user interface related features. These tests will be made available from
  3420    the <a href="http://www.w3.org/Style/CSS/Test/">CSS Test Suites</a> home
  3421    page.
  3423   <p>Related issue: <a
  3424    href="http://wiki.csswg.org/spec/css3-ui#issue-1">1</a>.
  3426   <h2 class=no-num id=index>Index</h2>
  3428   <p>This appendix is <em>informative</em>.</p>
  3429   <!--begin-index-->
  3431   <ul class=indexlist>
  3432    <li>box-sizing, <a href="#box-sizing0"
  3433     title="section 6.1."><strong>6.1.</strong></a>
  3435    <li>content, <a href="#content"
  3436     title="section 5.1."><strong>5.1.</strong></a>
  3438    <li>cursor, <a href="#cursor0"
  3439     title="section 9.1.1."><strong>9.1.1.</strong></a>
  3441    <li>icon, <a href="#icon" title="section 5.2."><strong>5.2.</strong></a>
  3443    <li>ime-mode, <a href="#ime-mode"
  3444     title="section 9.2.3."><strong>9.2.3.</strong></a>
  3446    <li>invert, <a href="#invert"
  3447     title="section 7.4."><strong>7.4.</strong></a>
  3449    <li>MAY, <a href="#may" title="section 2.1."><strong>2.1.</strong></a>
  3451    <li>MUST, <a href="#must" title="section 2.1."><strong>2.1.</strong></a>
  3453    <li>MUST NOT, <a href="#must-not"
  3454     title="section 2.1."><strong>2.1.</strong></a>
  3456    <li>nav-down, <a href="#nav-down"
  3457     title="section 9.2.2."><strong>9.2.2.</strong></a>
  3459    <li>nav-index, <a href="#nav-index0"
  3460     title="section 9.2.1."><strong>9.2.1.</strong></a>
  3462    <li>nav-left, <a href="#nav-left"
  3463     title="section 9.2.2."><strong>9.2.2.</strong></a>
  3465    <li>nav-right, <a href="#nav-right"
  3466     title="section 9.2.2."><strong>9.2.2.</strong></a>
  3468    <li>nav-up, <a href="#nav-up"
  3469     title="section 9.2.2."><strong>9.2.2.</strong></a>
  3471    <li>OPTIONAL, <a href="#optional"
  3472     title="section 2.1."><strong>2.1.</strong></a>
  3474    <li>outline, <a href="#outline0"
  3475     title="section 7.1."><strong>7.1.</strong></a>
  3477    <li>outline-color, <a href="#outline-color0"
  3478     title="section 7.4."><strong>7.4.</strong></a>
  3480    <li>outline-offset, <a href="#outline-offset0"
  3481     title="section 7.5."><strong>7.5.</strong></a>
  3483    <li>outline-style, <a href="#outline-style0"
  3484     title="section 7.3."><strong>7.3.</strong></a>
  3486    <li>outline-width, <a href="#outline-width0"
  3487     title="section 7.2."><strong>7.2.</strong></a>
  3489    <li>RECOMMENDED, <a href="#recommended"
  3490     title="section 2.1."><strong>2.1.</strong></a>
  3492    <li>REQUIRED, <a href="#required"
  3493     title="section 2.1."><strong>2.1.</strong></a>
  3495    <li>resize, <a href="#resize0"
  3496     title="section 8.1."><strong>8.1.</strong></a>
  3498    <li>SHALL, <a href="#shall" title="section 2.1."><strong>2.1.</strong></a>
  3500    <li>SHALL NOT, <a href="#shall-not"
  3501     title="section 2.1."><strong>2.1.</strong></a>
  3503    <li>SHOULD, <a href="#should"
  3504     title="section 2.1."><strong>2.1.</strong></a>
  3506    <li>SHOULD NOT, <a href="#should-not"
  3507     title="section 2.1."><strong>2.1.</strong></a>
  3509    <li>text-overflow, <a href="#text-overflow0"
  3510     title="section 8.2."><strong>8.2.</strong></a>
  3512    <li>text-overflow:clip, <a href="#clip"
  3513     title="section 8.2."><strong>8.2.</strong></a>
  3515    <li>text-overflow:ellipsis, <a href="#ellipsis"
  3516     title="section 8.2."><strong>8.2.</strong></a>
  3518    <li>text-overflow:&lt;string&gt;, <a href="#ltstringgt"
  3519     title="section 8.2."><strong>8.2.</strong></a>
  3520   </ul>
  3521   <!--end-index-->
  3523   <h2 class=no-num id=property-index>Property index</h2>
  3525   <p>This appendix is <em>informative</em>.</p>
  3526   <!--begin-properties-->
  3528   <table class=proptable>
  3529    <thead>
  3530     <tr>
  3531      <th>Property
  3533      <th>Values
  3535      <th>Initial
  3537      <th>Applies to
  3539      <th>Inh.
  3541      <th>Percentages
  3543      <th>Media
  3545    <tbody>
  3546     <tr>
  3547      <th><a class=property href="#box-sizing0">box-sizing</a>
  3549      <td>content-box | padding-box | border-box | inherit
  3551      <td>content-box
  3553      <td>all elements that accept width or height
  3555      <td>no
  3557      <td>N/A
  3559      <td>visual
  3561     <tr>
  3562      <th><a class=property href="#content">content</a>
  3564      <td>
  3566      <td>same as CSS 2.1
  3568      <td>same as CSS 2.1
  3570      <td>same as CSS 2.1
  3572      <td>same as CSS 2.1
  3574      <td>same as CSS 2.1
  3576     <tr>
  3577      <th><a class=property href="#cursor0">cursor</a>
  3579      <td>[ [&lt;uri&gt; [&lt;x&gt; &lt;y&gt;]?,]* [ auto | default | none |
  3580       context-menu | help | pointer | progress | wait | cell | crosshair |
  3581       text | vertical-text | alias | copy | move | no-drop | not-allowed |
  3582       e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize |
  3583       sw-resize | w-resize | ew-resize | ns-resize | nesw-resize |
  3584       nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out
  3585       ] ] | inherit
  3587      <td>auto
  3589      <td>all elements
  3591      <td>yes
  3593      <td>N/A
  3595      <td>visual, interactive
  3597     <tr>
  3598      <th><a class=property href="#icon">icon</a>
  3600      <td>auto | &lt;uri&gt; [, &lt;uri&gt;]* | inherit
  3602      <td>auto
  3604      <td>all elements
  3606      <td>no
  3608      <td>N/A
  3610      <td>all
  3612     <tr>
  3613      <th><a class=property href="#ime-mode">ime-mode</a>
  3615      <td>auto | normal | active | inactive | disabled | inherit
  3617      <td>auto
  3619      <td>text fields
  3621      <td>no
  3623      <td>N/A
  3625      <td>interactive
  3627     <tr>
  3628      <th><a class=property href="#nav-down">nav-down</a>
  3630      <td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? |
  3631       inherit
  3633      <td>auto
  3635      <td>all enabled elements
  3637      <td>no
  3639      <td>N/A
  3641      <td>interactive
  3643     <tr>
  3644      <th><a class=property href="#nav-index0">nav-index</a>
  3646      <td>auto | &lt;number&gt; | inherit
  3648      <td>auto
  3650      <td>all enabled elements
  3652      <td>no
  3654      <td>n/a
  3656      <td>interactive
  3658     <tr>
  3659      <th><a class=property href="#nav-left">nav-left</a>
  3661      <td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? |
  3662       inherit
  3664      <td>auto
  3666      <td>all enabled elements
  3668      <td>no
  3670      <td>N/A
  3672      <td>interactive
  3674     <tr>
  3675      <th><a class=property href="#nav-right">nav-right</a>
  3677      <td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? |
  3678       inherit
  3680      <td>auto
  3682      <td>all enabled elements
  3684      <td>no
  3686      <td>N/A
  3688      <td>interactive
  3690     <tr>
  3691      <th><a class=property href="#nav-up">nav-up</a>
  3693      <td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? |
  3694       inherit
  3696      <td>auto
  3698      <td>all enabled elements
  3700      <td>no
  3702      <td>N/A
  3704      <td>interactive
  3706     <tr>
  3707      <th><a class=property href="#outline0">outline</a>
  3709      <td>[ &lt;‘outline-color’&gt; || &lt;‘outline-style’&gt; ||
  3710       &lt;‘outline-width’&gt; ] | inherit
  3712      <td>see individual properties
  3714      <td>all elements
  3716      <td>no
  3718      <td>N/A
  3720      <td>visual
  3722     <tr>
  3723      <th><a class=property href="#outline-color0">outline-color</a>
  3725      <td>&lt;color&gt; | invert | inherit
  3727      <td>invert
  3729      <td>all elements
  3731      <td>no
  3733      <td>N/A
  3735      <td>visual
  3737     <tr>
  3738      <th><a class=property href="#outline-offset0">outline-offset</a>
  3740      <td>&lt;length&gt; | inherit
  3742      <td>0
  3744      <td>all elements
  3746      <td>no
  3748      <td>N/A
  3750      <td>visual
  3752     <tr>
  3753      <th><a class=property href="#outline-style0">outline-style</a>
  3755      <td>auto | &lt;border-style&gt; | inherit
  3757      <td>none
  3759      <td>all elements
  3761      <td>no
  3763      <td>N/A
  3765      <td>visual
  3767     <tr>
  3768      <th><a class=property href="#outline-width0">outline-width</a>
  3770      <td>&lt;border-width&gt; | inherit
  3772      <td>medium
  3774      <td>all elements
  3776      <td>no
  3778      <td>N/A
  3780      <td>visual
  3782     <tr>
  3783      <th><a class=property href="#resize0">resize</a>
  3785      <td>none | both | horizontal | vertical | inherit
  3787      <td>none
  3789      <td>elements with ‘overflow’ other than visible
  3791      <td>no
  3793      <td>N/A
  3795      <td>visual
  3797     <tr>
  3798      <th><a class=property href="#text-overflow0">text-overflow</a>
  3800      <td>( clip | ellipsis | &lt;string&gt; ){1,2} | inherit
  3802      <td>clip
  3804      <td>block containers
  3806      <td>no
  3808      <td>N/A
  3810      <td>visual
  3811   </table>
  3812   <!--end-properties-->
  3813 </html>
  3814 <!-- Keep this comment at the end of the file
  3815 Local variables:
  3816 mode: sgml
  3817 sgml-declaration:"~/SGML/HTML4.decl"
  3818 sgml-default-doctype-name:"html"
  3819 sgml-minimize-attributes:t
  3820 sgml-nofill-elements:("pre" "style" "br")
  3821 sgml-live-element-indicator:t
  3822 End:
  3823 -->

mercurial