123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
- <html lang="en">
- <head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8">
- <title>
- The 'pointer-events' property
- </title>
- <link href="CSSVisualEffects/base.css" rel="stylesheet" type="text/css">
- <style type="text/css">
- @media print {
- /* the following doesn't work for now,
- instead we rely on a patched version of html2ps which has this built-in */
- .dlink { display: none }
- /* the following doesn't work for now,
- instead we rely on a patched version of html2ps which has this built-in */
- div.navbar {
- display: none;
- }
- html { margin: 0 !important }
- body { font-family: serif }
- th, td { font-family: inherit }
- a { color: inherit !important }
- div.example:before { font-family: serif !important }
- pre.example:before { font-family: serif !important }
- a:link, a:visited { text-decoration: none !important }
- a:link:after, a:visited:after { /* create a cross-ref "see..." */ }
- }
- @page {
- margin: 1.5cm 1.1cm;
- }
- /* html body { margin-left: 8.5em } /* Overrides 70px in base.css */
- body {counter-reset: exampleno figure}
- h2, h3, h5, h6 { margin-top: 2em }
- h1, h2, h3, h4, h5, h6 { page-break-after: avoid; font-family: inherit }
- div.figure, div.sidefigure, pre, table.propdef, table.propdef-extra,
- div.example { page-break-inside: avoid }
- dt { page-break-after: avoid }
- span.id {float: right; font-weight: bold}
- /* p, p.note + p, p.testlink + p, p.note, p.issue { */
- p, p.testlink + p, p.issue, p.mtb {
- /* text-indent: 2em; */
- margin-bottom: 0.6em;
- margin-top: 0.6em
- }
- p + p, p + div.sidefigure + p {
- /* text-indent: 2em; */
- margin-top: 0
- }
- dd p {
- margin-top: 0
- }
- h1 + h2 {
- margin-top: 0;
- }
- pre {
- text-align: left; /* fixes justification in Mac IE 5 */
- text-indent: 0; /* fixes indent in Mac Netscape 6 */
- margin-top: 1em;
- margin-bottom: 1em;
- font-size: 90% /*smaller*/;
- }
- /*
- var {
- font-style: normal;
- }
- */
- img {
- border-style: none;
- color: white;
- }
- .toc {
- text-indent: 0;
- }
- @media all { /* NS < 6 doesn't like borders around inline elements... */
- body {
- line-height: 1.3;
- }
- a:link, a:visited {
- /* color: inherit;*/
- }
- a.logo:link, a.logo:visited {
- padding: 0;
- border-style: none;
- }
- /* Hmm, this seems to confuse many browsers... */
- dt { margin-left: 0; margin-top: 1em; color: #030; font-weight: bold;}
- dd { margin-left: 2em }
- dl, ul, ol { margin-left: 1em; padding-left: 0 }
- li { margin-left: 2em; padding-left: 0 }
- }
- ul.indexlist { margin-left: 0; /*column-width: 13em; columns: 13em*/ }
- ul.indexlist li { margin-left: 0; list-style: none }
- ul.indexlist li li { margin-left: 1em }
- div.example:before {
- content: "Example";
- content: "Example " counter(exampleno, upper-roman);
- font: bold small sans-serif;
- /*float: left;*/
- position: absolute;
- top: -0.6em;
- left: -2.5em;
- width: 7.5em;
- text-align: center;
- line-height: 1em;
- color: #FFF8DD;
- background: #600;
- padding: 0.1em;
- border: thin solid #999;
- /*margin: -1.3em 0 0.3em -2.5em;*/
- }
- div.example {
- counter-increment: exampleno;
- }
- pre.example:before {
- content: "Example";
- content: "Example " counter(exampleno, upper-roman);
- font: bold small sans-serif;
- /*float: left;*/
- position: absolute;
- top: -0.6em;
- left: -2.5em;
- width: 7.5em;
- text-align: center;
- line-height: 1em;
- color: #FFF8DD;
- background: #600;
- padding: 0.1em;
- border: thin solid #999;
- /*margin: -1.3em 0 0.3em -2.5em;*/
- }
- pre.example {
- counter-increment: exampleno;
- }
- div.example, div.illegal-example, div.html, div.illegal-html, div.xml,
- div.illegal-xml, pre.example, pre.illegal-example, pre.html,
- pre.illegal-html, pre.xml, pre.illegal-xml {
- background: #FFF8DD;
- padding: 0.5em;
- margin: 1em 0;
- border: thin solid #999;
- position: relative;
- }
- pre.example, pre.illegal-example, pre.html,
- pre.illegal-html, pre.xml, pre.illegal-xml {
- padding-top: 1.5em;
- }
- div.example { color: #600 }
- pre.example { color: #600 }
- pre.illegal-example { color: red }
- div.illegal-example { color: red }
- div.illegal-example p { color: black }
- div.html { color: #600 }
- pre.html { color: #600 }
- pre.illegal-html { color: red }
- div.illegal-html { color: red }
- div.illegal-html p { color: black }
- pre.deprecated-html { color: red }
- div.deprecated-html { color: red }
- div.deprecated-html p { color: black }
- div.xml { color: #600 }
- pre.xml { color: #600 }
- pre.illegal-xml { color: red }
- div.illegal-xml { color: red }
- div.illegal-xml p { color: black }
- code { font-size: 90% }
- .css { color: #800 } /* inline CSS code (SPAN/CODE) */
- code.css { font-family: inherit; font-size: 100% }
- code.html { color: #600 } /* inline HTML */
- code.xml { color: #600 } /* inline XML */
- .property { } /* name of a CSS property (SPAN) */
- .prop-name { color: #2A2AA5; font-weight: bold; font-size: 90%} /* name of a CSS property (SPAN) */
- .prop-value { font-weight: bold; font-size: 90%} /* CSS property value (SPAN) */
- .descriptor { } /* name of a CSS descriptor (SPAN) */
- .issue { color: #c00 } /* editorial remark, open issue */
- .type { font-style: italic } /* A <type> value for a property */
- dfn { font-weight: bolder; /*font-size: 1em*/ }
- /* Class note is a non-normative note. May be inline or a P or DIV */
- .note {
- /* font-weight: bold; */
- background-color: #cfc;
- margin-top: 2em;
- padding: 1em;
- border: 1px solid #6a6;
- border-left: 8px solid #6a6;
- }
- p.note, div.note {
- /* margin: 1em 2em; */
- }
- p.note:before, span.note:before { content: "\25B6" " " }
- div.note > p:first-child:before { content: "\25B6" " " }
- .normref { color: red }
- .informref { color: green }
- /* ToC not indented, but font style shows hierarchy */
- ul.toc {margin: 1em 0; padding: 0; font-weight: bold}
- ul.toc ul {margin: 0; padding: 0; font-weight: normal}
- ul.toc ul ul {margin: 0 /*0 0 2em*/; font-style: italic}
- ul.toc ul ul ul {margin: 0}
- ul.toc li {margin: 0.6em 0; padding: 0}
- ul.toc li li {margin: 0}
- /*
- ul.toc li li li, ul.toc li li li ul {margin-left: 0; display: inline}
- ul.toc li li li ul, ul.toc li li li ul li {margin-left: 0; display: inline}
- */
- @media all { /* NS4 doesn't align the floats properly :-( */
- /* Section numbers in a column of their own */
- ul.toc span.secno {margin-right: 1em} /* workaround for Opera6 */
- ul.toc span.secno {float: left; width: 4em; margin-left: -5em}
- /*ul.toc span.secno {text-align: right}*/
- ul.toc li {clear: both}
- ul.toc {margin-left: 5em}
- /* If we had 'tab', floats would not be needed here:
- ul.toc span.secno {tab: 5em right; margin-right: 1em}
- ul.toc li {text-indent: 5em hanging}
- The second line in case items wrap
- */
- }
- ul.index {
- list-style: disc; /* Mac NS has problem with 'none' */
- list-style: none;
- }
- s, del {text-decoration: line-through; color: red}
- u, ins {text-decoration: underline; background: #bfa}
- div.figure, div.sidefigure {
- text-align: center;
- margin: 2.5em 0;
- }
- div.sidefigure {
- float: right;
- width: 50%;
- margin: 0 0 0.5em 0.5em
- }
- div.figure img, div.sidefigure img {
- display: block;
- margin: auto;
- max-width: 100%
- }
- p.caption, caption {
- text-align: center;
- font-style: italic;
- font-size: 90%;
- margin: 1.5em 2em;
- text-indent: 0;
- }
- p.caption:before {
- content: "Figure " counter(figure) ". ";
- font-weight: bold;
- }
- p.caption {
- counter-increment: figure;
- }
- /* DL list is indented, but figure inside it is not */
- dd { margin-left: 2em }
- dd div.figure { margin-left: -2em }
- sup {
- vertical-align: super;
- font-size: 80%
- }
- /* "Equations" (not real MathML, but simple HTML) are put in a
- blockquote and may have an equation number. We make sure the
- blockquote has enough margin on the right and then put the equation
- number there. */
- blockquote {
- margin: 0.5em 4em 0.5em 2em;
- text-indent: 0;
- }
- .eqno {
- text-align: right;
- float: right;
- width: 3em;
- margin: 0 -4em 0 0;
- font-weight: bold;
- /* background: silver; color: black; padding: 0.1em */
- }
- table.equiv-table { border-spacing: 0; margin: 0.5em 0 }
- table.equiv-table th, table.equiv-table td { padding: 0.3em }
- table.equiv-table th { text-align: left }
- /* table.equiv-table th:first-child { text-align: right } */
- table.equiv-table td, table.equiv-table th { border-bottom: thin solid #666 }
- table.equiv-table { border-bottom: hidden }
- table.equiv-table { empty-cells: show }
- table.equiv-table caption { margin: 0.5em 0 0 0 }
- /* Style for table of properties */
- table.proptable {
- font-size: small;
- border-collapse: collapse;
- border-spacing: 0;
- text-align: left;
- margin: 1em 0;
- }
- @media print { /* Use the wide margin in print */
- table.proptable {margin: 1em 0 1em -8.5em}
- }
- table.proptable td, table.proptable th {
- padding: 0.4em;
- border-style: solid none none dotted;
- border-width: thin;
- border-color: red;
- }
- table.proptable th:first-child, table.proptable td:first-child {
- border-left-style: none;
- }
- /* Style for table that defines a property or a descriptor */
- table.propdef, table.propdef-extra, table.descdef {
- border-spacing: 0;
- border-collapse: collapse;
- width: 100%;
- table-layout: fixed;
- background: #DEF;
- margin-top: 1.2em;
- margin-bottom: 1.2em
- }
- table.propdef td, table.propdef-extra td, table.descdef td {
- padding: 0 0.3em;
- vertical-align: baseline;
- }
- /*
- table.propdef dfn, table.propdef-extra dfn, table.descdef dfn {
- font-weight: bold;
- font-style: normal
- }
- */
- table.propdef td:first-child,
- table.propdef-extra td:first-child,
- table.descdef td:first-child {
- font-style: italic;
- width: 8.1em
- }
- table.propdef td[colspan]:first-child,
- table.propdef-extra td[colspan]:first-child,
- table.descdef td[colspan]:first-child {
- font-style: inherit
- }
- table.propdef tr:first-child,
- table.propdef-extra tr:first-child,
- table.descdef tr:first-child {
- background: #005A9C;
- color: white
- }
- /* table.propdef tr:first-child td { padding-top: 0.1em; padding-bottom: 0.1em } */
- /* This would replace :first-child for Opera, but it confuses WinIE :-( */
- /*
- table.propdef td { width: 8em }
- table.propdef td + td { width: auto }
- table.propdef tr { background: #005A9C; color: white }
- table.propdef tr + tr { background: transparent; color: black }
- */
- /* CSS modules typically don't use MUST, SHOULD etc. from RFC 2119,
- or, if they do, they don't put them in uppercase. But the following
- class is provided in case a spec wants to use RFC 2119 terms in
- uppercase in the source. */
- em.rfc2119 {
- text-transform: lowercase;
- font-variant: small-caps;
- font-style: normal
- }
- /* In Profile specs, a table of required features: */
- table.features th {
- background: #00589f;
- color: #fff;
- text-align: left;
- padding: 0.2em 0.2em 0.2em 0.5em;
- }
- table.features td {
- vertical-align: top;
- border-bottom: 1px solid #ccc;
- padding: 0.3em 0.3em 0.3em 0.7em;
- }
- body { line-height: 1.4; }
- .issue, .todo {
- //display: none;
- margin: 1em;
- border: 2px solid;
- padding: 1em;
- }
- span.issue, span.todo {
- border-width: 1px;
- margin: 0; padding: 0;
- }
- .issue { border-color: red; }
- .todo { border-color: yellow; }
- .issue:before, .todo:before {
- content: attr(class) ": ";
- text-transform: uppercase;
- font-weight: bold;
- }
- .issue { background: rgb(255,224,224); color: black; }
- .todo { background: rgb(255,255,192); color: black; }
- .syntax {
- padding: 1em;
- margin: 1em 0;
- border: 1px black solid;
- background: rgb(224,224,255);
- color: black;
- }
- .idl-code {
- margin: 0;
- font-family: monospace;
- border: 1px solid black;
- color: black;
- background-color: #dfdfdf;
- }
- table {
- border-collapse: collapse;
- }
- th {
- background-color: #dfdfdf;
- }
-
- td, th {
- text-align: left;
- padding: 0.2em 1em;
- border: 1px solid black;
- }
-
- </style>
- </head>
- <body>
- <h1>
- The 'pointer-events' property
- </h1>
- <h2>
- 25 November 2008
- </h2>
- <dl>
- <dt>
- Authors:
- </dt>
- <dd>
- Dean Jackson (<a href="mailto:dino@apple.com">dino@apple.com</a>), <a href="http://www.apple.com/">Apple</a>
- </dd>
- </dl>
- <hr>
- <!-- ======================================================================================================= -->
- <div class="note">
- <p>
- NOTE: This document is a work-in-progress proposal. It should not be
- considered complete, nor does it represent the position of Apple or
- the WebKit project.
- </p>
- <p>
- For reference:
- </p>
- <ul>
- <li><a href="https://bugs.webkit.org/show_bug.cgi?id=11395">WebKit bug on implementation</a></li>
- <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=380573">Mozilla bug on implementation</a></li>
- </ul>
- </div>
- <h2>
- 1 Introduction
- </h2>
- <p>
- This document describes how the <a
- href="http://www.w3.org/TR/SVG/interact.html#PointerEventsProperty">SVG
- pointer-events property</a> is extended for use in (X)HTML content.
- </p>
- <!-- ======================================================================================================= -->
- <h2>
- 2 The <span class="prop-name">pointer-events</span> property
- </h2>
-
- <p>
- In different circumstances, authors may want to control under what
- circumstances particular elements can become the target of pointer
- events. For example, the author might want a given element to ignore
- pointer events under all circumstances so that elements underneath the
- given element will become the target of pointer events.
- </p>
- <p>
- The 'pointer-events' property specifies under what circumstances a given
- element can be the target element for a pointer event. It
- affects the circumstances under which the following are processed:
- </p>
-
- <ul>
- <li>user interface events such as mouse clicks</li>
- <li>dynamic pseudo-classes (i.e., :hover, :active and :focus)</li>
- <li>hyperlinks</li>
- </ul>
-
- <p>
- The <span class="prop-name">pointer-events</span> property was originally defined for <a
- href="http://www.w3.org/TR/SVG/interact.html#PointerEventsProperty">SVG content</a>
- and, as such, accepts property values specific to vector graphics (eg. relating to
- graphical fill and stroke). The following definition only applies to the property
- when used with HTML content. Note that the property has a new initial value, "auto",
- which behaves as "visiblePainted" in SVG content and "visible" in non-SVG content.
- </p>
-
- <div class="propdef">
- <dl>
- <dt><span class="prop-name">'pointer-events'</span></dt>
- <dd>
- <table summary="pointer-events property">
- <tr>
- <td><em>Value:</em></td>
- <td>
- auto | visible | none | visiblePainted | visibleFill | visibleStroke |
- painted | fill | stroke | all
- </td>
- </tr>
- <tr>
- <td><em>Initial:</em></td>
- <td>auto</td>
- </tr>
- <tr>
- <td><em>Applies to:</em></td>
- <td>all
- elements</td>
- </tr>
- <tr>
- <td><em>Inherited:</em></td>
- <td>yes</td>
- </tr>
- <tr>
- <td><em>Percentages:</em></td>
- <td>N/A</td>
- </tr>
- <tr>
- <td><em>Media:</em></td>
- <td>visual</td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- <dl>
- <dt><span class="prop-value">auto</span></dt>
- <dd>
- In SVG content, behave as <span class="prop-value">visiblePainted</span>.
- Otherwise, behave as <span class="prop-value">visible</span>.
- </dd>
- <dt><span class="prop-value">visible</span></dt>
- <dd>
- The given element receives pointer events.
- </dd>
- <dt><span class="prop-value">none</span></dt>
- <dd>
- The given element does not receive pointer events.
- </dd>
- <dt><span class="prop-value">visiblePainted</span></dt>
- <dt><span class="prop-value">visibleFill</span></dt>
- <dt><span class="prop-value">visibleStroke</span></dt>
- <dt><span class="prop-value">painted</span></dt>
- <dt><span class="prop-value">fill</span></dt>
- <dt><span class="prop-value">stroke</span></dt>
- <dt><span class="prop-value">all</span></dt>
- <dd>
- In SVG content, behave as defined by the <a
- href="http://www.w3.org/TR/SVG/interact.html#PointerEventsProperty">SVG
- specification</a>. Otherwise, behave as <span
- class="prop-value">visible</span>.
- </dd>
- </dl>
-
-
- </body>
- </html>
|