pointer-events
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
pointer-events CSS 屿§æå®å¨ä»ä¹æ
åµä¸ (妿æ) æä¸ªç¹å®çå¾å½¢å
ç´ å¯ä»¥æä¸ºé¼ æ äºä»¶ç targetã
/* Keyword values */
pointer-events: auto;
pointer-events: none;
pointer-events: visiblePainted; /* SVG only */
pointer-events: visibleFill; /* SVG only */
pointer-events: visibleStroke; /* SVG only */
pointer-events: visible; /* SVG only */
pointer-events: painted; /* SVG only */
pointer-events: fill; /* SVG only */
pointer-events: stroke; /* SVG only */
pointer-events: all; /* SVG only */
/* Global values */
pointer-events: inherit;
pointer-events: initial;
pointer-events: unset;
彿¤å±æ§æªæå®æ¶ï¼visiblePaintedå¼çç¸åç¹å¾éç¨äº SVGï¼å¯ç¼©æ¾ç¢éå¾å½¢ï¼å
容ã
é¤äºæç¤ºè¯¥å
ç´ ä¸æ¯é¼ æ äºä»¶çç®æ ä¹å¤ï¼å¼noneè¡¨ç¤ºé¼ æ äºä»¶âç©¿éâ该å
ç´ å¹¶ä¸æå®è¯¥å
ç´ âä¸é¢âçä»»ä½ä¸è¥¿ã
| åå§å¼ | auto |
|---|---|
| éç¨å ç´ | ææå ç´ |
| æ¯å¦æ¯ç»§æ¿å±æ§ | æ¯ |
| 计ç®å¼ | as specified |
| å¨ç»ç±»å | 离æ£å¼ |
è¯æ³
pointer-events屿§è¢«æå®ä¸ºä»ä¸é¢çå¼å表ä¸éæ©çä¸ä¸ªå
³é®åã
å¼
auto-
ä¸
pointer-events屿§æªæå®æ¶çè¡¨ç°ææç¸åï¼å¯¹äº SVG å 容ï¼è¯¥å¼ä¸visiblePaintedææç¸å none-
å ç´ æ°¸è¿ä¸ä¼æä¸ºé¼ æ äºä»¶çtargetã使¯ï¼å½å ¶å代å ç´ ç
pointer-events屿§æå®å ¶ä»å¼æ¶ï¼é¼ æ äºä»¶å¯ä»¥æåå代å ç´ ï¼å¨è¿ç§æ åµä¸ï¼é¼ æ äºä»¶å°å¨æè·æåæ³¡é¶æ®µè§¦åç¶å ç´ çäºä»¶ä¾¦å¬å¨ã visiblePainted-
åªéç¨äº SVGãå ç´ åªæå¨ä»¥ä¸æ åµæä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼
visibility屿§å¼ä¸ºvisibleï¼ä¸é¼ æ æéå¨å ç´ å é¨ï¼ä¸fill屿§æå®äºnoneä¹å¤çå¼visibility屿§å¼ä¸ºvisibleï¼é¼ æ æéå¨å ç´ è¾¹çä¸ï¼ä¸stroke屿§æå®äºnoneä¹å¤çå¼
visibleFill-
åªéç¨äº SVGãåªæå¨å ç´
visibility屿§å¼ä¸ºvisibleï¼ä¸é¼ æ æéå¨å ç´ å 鍿¶ï¼å ç´ æä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼fill屿§çå¼ä¸å½±åäºä»¶å¤çã visibleStroke-
åªéç¨äº SVGãåªæå¨å ç´
visibility屿§å¼ä¸ºvisibleï¼ä¸é¼ æ æéå¨å ç´ è¾¹çæ¶ï¼å ç´ æä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼stroke屿§çå¼ä¸å½±åäºä»¶å¤çã visible-
åªéç¨äº SVGãåªæå¨å ç´
visibility屿§å¼ä¸ºvisibleï¼ä¸é¼ æ æéå¨å ç´ å é¨æè¾¹çæ¶ï¼å ç´ æä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼fillåstroke屿§çå¼ä¸å½±åäºä»¶å¤çã painted-
åªéç¨äº SVGãå ç´ åªæå¨ä»¥ä¸æ åµæä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼
- é¼ æ æéå¨å
ç´ å
é¨ï¼ä¸
fill屿§æå®äºnoneä¹å¤çå¼ - é¼ æ æéå¨å
ç´ è¾¹çä¸ï¼ä¸
stroke屿§æå®äºnoneä¹å¤çå¼
visibility屿§çå¼ä¸å½±åäºä»¶å¤çã - é¼ æ æéå¨å
ç´ å
é¨ï¼ä¸
fill-
åªéç¨äº SVGãåªæé¼ æ æéå¨å ç´ å 鍿¶ï¼å ç´ æä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼
fillåvisibility屿§çå¼ä¸å½±åäºä»¶å¤çã stroke-
åªéç¨äº SVGãåªæé¼ æ æéå¨å ç´ è¾¹ç䏿¶ï¼å ç´ æä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼
strokeåvisibility屿§çå¼ä¸å½±åäºä»¶å¤çã all-
åªéç¨äº SVGãåªæé¼ æ æéå¨å ç´ å é¨æè¾¹çæ¶ï¼å ç´ æä¼æä¸ºé¼ æ äºä»¶çç®æ ï¼
fillãstrokeåvisibility屿§çå¼ä¸å½±åäºä»¶å¤çã
示ä¾
>ç¤ºä¾ 1
/* Example 1: Makes all the img non-reactive to any mouse events such as dragging, hovering, clicking etc */
img {
pointer-events: none;
}
ç¤ºä¾ 2
ç¹å»é¾æ¥ http://example.com æ¶ï¼ä¸ä¼è·³è½¬
<ul>
<li><a href="https://developer.mozilla.org/">MDN</a></li>
<li><a href="http://example.com">example.com</a></li>
</ul>
a[href="http://example.com"] {
pointer-events: none;
}
æç¤º
使ç¨pointer-eventsæ¥é»æ¢å
ç´ æä¸ºé¼ æ äºä»¶ç®æ ä¸ä¸å®æå³çå
ç´ ä¸çäºä»¶ä¾¦å¬å¨æ°¸è¿ä¸ä¼è§¦åã妿å
ç´ å代æç¡®æå®äºpointer-events屿§å¹¶å
许å
¶æä¸ºé¼ æ äºä»¶çç®æ ï¼é£ä¹æå该å
ç´ çä»»ä½äºä»¶å¨äºä»¶ä¼ æè¿ç¨ä¸é½å°éè¿ç¶å
ç´ ï¼å¹¶ä»¥éå½çæ¹å¼è§¦åå
¶ä¸çäºä»¶ä¾¦å¬å¨ãå½ç¶ï¼ä½äºç¶å
ç´ ä½ä¸å¨å代å
ç´ ä¸çé¼ æ æ´»å¨é½ä¸ä¼è¢«ç¶å
ç´ åå代å
ç´ æè·ï¼é¼ æ æ´»å¨å°ä¼ç©¿è¿ç¶å
ç´ èæåä½äºå
¶ä¸é¢çå
ç´ ï¼ã
æä»¬å¸æä¸º HTML æä¾æ´ä¸ºç²¾ç»çæ§å¶ï¼èä¸ä»
ä»
æ¯autoånoneï¼ï¼ä»¥æ§å¶å
ç´ åªä¸é¨å使¶ä¼æè·é¼ æ äºä»¶ãå¦æä½ æç¬ç¹çæ³æ³ï¼è¯·æ·»å è³wiki 页é¢ç Use Cases é¨åï¼ä»¥å¸®å©æä»¬å¦ä½é对 HTML æ©å±pointer-eventsã
è¯¥å±æ§ä¹å¯ç¨æ¥æé«æ»å¨æ¶ç帧é¢ãçç¡®ï¼å½æ»å¨æ¶ï¼é¼ æ æ¬å卿äºå
ç´ ä¸ï¼å触åå
¶ä¸ç hover ææï¼ç¶èè¿äºå½±åé常ä¸è¢«ç¨æ·æ³¨æï¼å¹¶å¤åå¯¼è´æ»å¨åºç°é®é¢ã对bodyå
ç´ åºç¨pointer-eventsï¼noneï¼ç¦ç¨äºå
æ¬hoverå¨å
çé¼ æ äºä»¶ï¼ä»èæé«æ»å¨æ§è½ã
è§è
| è§è |
|---|
| CSS Basic User Interface Module Level 4 > # pointer-events-control > |
| Scalable Vector Graphics (SVG) 2 > # PointerEventsProperty > |
Its extension to HTML elements, though present in early drafts of CSS Basic User Interface Module Level 3, has been pushed to its level 4.
æµè§å¨å ¼å®¹æ§
åè§
- The SVG attribute
pointer-events - WebKit Specs PointerEventsProperty extended for use in (X)HTML content