<a>ï¼éå ç´
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
HTML <a> å
ç´ ï¼æç§°éå
ç´ ï¼å¯ä»¥éè¿å®ç href 屿§å建éåå
¶ä»ç½é¡µãæä»¶ãçµåé®ä»¶å°åãåä¸é¡µé¢å
çä½ç½®æä»»ä½å
¶ä» URL çè¶
龿¥ã
<a> ä¸çå
容åºè¯¥ææé¾æ¥çç®æ ã妿åå¨ href 屿§ï¼å½ <a> å
ç´ èç¦æ¶æä¸å车é®å°±ä¼æ¿æ´»å®ã
å°è¯ä¸ä¸
<p>ä½ å¯ä»¥éè¿è¿äºèç³»æ¹å¼æ¾å°å°æï¼</p>
<ul>
<li><a href="https://example.com">ç½ç«</a></li>
<li><a href="mailto:m.bluth@example.com">çµåé®ä»¶</a></li>
<li><a href="tel:+123456789">çµè¯</a></li>
</ul>
li {
margin-bottom: 0.5rem;
}
屿§
该å ç´ ç屿§å å«å ¨å±å±æ§ã
attributionsrc-
è¦æ±æµè§å¨åé
Attribution-Reporting-Eligibleæ 头ã卿å¡å¨ç«¯ï¼æ¤æä½å°è§¦åååºä¸åéAttribution-Reporting-Register-Sourceæ 头ï¼ç¨äºæ³¨ååºäºå¯¼èªçå½å æ¥æºãå½ç¨æ·ç¹å»é¾æ¥æ¶ï¼æµè§å¨ä¼åå¨ä¸åºäºå¯¼èªçå½å æ¥æºç¸å ³çæºæ°æ®ï¼è¯¥æ°æ®ç±
Attribution-Reporting-Register-Sourceååºæ 头æä¾ï¼ãæ´å¤è¯¦æ 请åé å½å æ¥å APIãæ¤å±æ§æä¸¤ç§å¯è®¾ç½®ççæ¬ï¼
-
å¸å°å¼ï¼å³ä» 使ç¨
attributionsrcåç§°ãè¿è¡¨ç¤ºå¸æå°Attribution-Reporting-Eligibleæ 头åéè³ä¸href屿§æåçç¸åæå¡å¨ãå½å¨å䏿å¡å¨ä¸å¤çå½å æ¥æºæ³¨åæ¶ï¼æ¤æ¹å¼å³å¯æ»¡è¶³éæ±ã -
å å«ä¸ä¸ªæå¤ä¸ª URL çå¼ï¼ä¾å¦ï¼
htmlattributionsrc="https://a.example/register-source https://b.example/register-source"å½è¯·æ±çèµæºä¸å¨ä½ æ§å¶çæå¡å¨ä¸ï¼æè 叿å¨å ¶ä»æå¡å¨ä¸å¤çå½å æ¥æºçæ³¨åæ¶ï¼æ¤åè½é常æç¨ãæ¤æ¶ï¼å¯ä»¥å°ä¸ä¸ªæå¤ä¸ª URL ä½ä¸º
attributionsrcçå¼è¿è¡æå®ãå½èµæºè¯·æ±åçæ¶ï¼ç³»ç»å°åèµæºæºå°ååattributionsrc䏿å®ç URL åéAttribution-Reporting-Eligibleæ 头ãè¿äº URL å¯è¿åAttribution-Reporting-Register-Sourceæ å¤´ä»¥å®ææ³¨åæµç¨ã夿³¨ï¼æå®å¤ä¸ª URL æå³çå¯å¨åä¸åè½ä¸æ³¨åå¤ä¸ªå½å æ¥æºãä¾å¦ï¼å¯è½éè¦è¯ä¼°ä¸åè¥éæ´»å¨çææï¼è¿æ¶ååºäºä¸åæ°æ®çæåç±»æ¥åã
<a>å ç´ ä¸å¯ç¨ä½å½å 触åå¨ï¼ä» å¯ä½ä¸ºæ¥æºä½¿ç¨ã -
download-
å¯¼è´æµè§å¨å°é¾æ¥ç URL è§ä¸ºä¸è½½èµæºãå¯ä»¥ä½¿ç¨æä¸ä½¿ç¨
filenameå¼ï¼-
å¦ææ²¡ææå®å¼ï¼æµè§å¨ä¼ä»å¤ä¸ªæ¥æºå³å®æä»¶ååæ©å±åï¼
Content-DispositionHTTP æ 头ã- URL è·¯å¾çæå䏿®µã
- åªä½ç±»åï¼æ¥èª
Content-Typeæ 头ãdata:URL çå¼å¤´ï¼æblob:URL çBlob.typeï¼ã
-
filenameï¼å³å®æä»¶åçå¼ã/å\被转å为ä¸å线ï¼_ï¼ãæä»¶ç³»ç»å¯è½ä¼é»æ¢æä»¶åä¸å ¶ä»çå符ï¼å æ¤æµè§å¨ä¼å¨å¿ è¦æ¶éå½è°æ´æä»¶åã
夿³¨ï¼
downloadåªå¨åæº URL æblob:ãdata:å议起ä½ç¨ã- æµè§å¨å¯¹å¾ ä¸è½½çæ¹å¼å æµè§å¨ãç¨æ·è®¾ç½®åå ¶ä»å ç´ èå¼ãå¨ä¸è½½å¼å§ä¹åï¼å¯è½ä¼æç¤ºç¨æ·ï¼æè èªå¨ä¿åæä»¶ï¼æè èªå¨æå¼ãèªå¨æå¼è¦ä¹å¨å¤é¨åºç¨ç¨åºä¸ï¼è¦ä¹å¨æµè§å¨æ¬èº«ä¸ã
- 妿
Content-Dispositionæ 头çä¿¡æ¯ä¸download屿§ä¸åï¼äº§ççè¡ä¸ºå¯è½ä¸åï¼- 妿æ 头æå®äº
filenameï¼å®å°ä¼å äºdownload屿§ä¸æå®çæä»¶åã - 妿æ 头æå®äº
inlineçå¤ç½®æ¹å¼ï¼Chrome å Firefox ä¼ä¼å èèè¯¥å±æ§å¹¶å°å ¶è§ä¸ºä¸è½½èµæºãæ§ç Firefox æµè§å¨ï¼çæ¬ 82 ä¹åï¼ä¼å èè该æ 头ï¼å¹¶å°å èæ¾ç¤ºå 容ã
- 妿æ 头æå®äº
-
href-
è¶ é¾æ¥ææåç URLã龿¥ä¸éäºåºäº HTTP ç URLââå®ä»¬å¯ä»¥ä½¿ç¨æµè§å¨æ¯æçä»»ä½ URL åè®®ï¼
- 带
tel:URL ççµè¯å·ç - 带
mailto:URL ççµåé®ä»¶å°å - 带
sms:URL ççä¿¡ - 带
javascript:URL ç坿§è¡ä»£ç - 妿 web æµè§å¨ä¸æ¯æå
¶ä» URL æ¹æ¡ï¼ç½ç«å¯ä»¥ä½¿ç¨
registerProtocolHandler()
æ¤å¤ï¼URL çå ¶ä»ç¹æ§å¯å®ä½èµæºçç¹å®é¨åï¼å æ¬ï¼
- ä½¿ç¨ææ¡£çæ®µé¾æ¥å°é¡µé¢çæä¸æ®µ
- ä½¿ç¨ææ¬çæ®µé¾æ¥å°æä¸æ®µæå
- 使ç¨åªä½çæ®µé¾æ¥å°æä¸ªåªä½æä»¶
- 带
hreflang-
è¯¥å±æ§ç¨äºæå®æé¾æ¥å°çææ¡£ç人类è¯è¨ãå ¶ä» æä¾å»ºè®®ï¼å¹¶æ²¡æå ç½®çåè½ãå ¶å 许çå¼ä¸å ¨å±ç
lang屿§ä¸è´ã interestfor-
å°
<a>å ç´ å®ä¹ä¸ºå ³æ³¨è§¦åå¨ãå ¶å¼ä¸ºç®æ å ç´ çidï¼å½è§¦åå¨å ç´ è·å¾æå¤±å»å ³æ³¨æ¶ï¼ä¾å¦éè¿æ¬å/åæ¶æ¬åæèç¦/åæ¶èç¦ï¼ï¼è¯¥ç®æ å ç´ å°åå°æç§å½±åï¼é常表ç°ä¸ºæ¾ç¤ºæéèï¼ãæ´å¤ç»èå示ä¾è¯·åé 使ç¨å ³æ³¨è§¦åå¨ã ping-
å å«ä¸ä¸ªä»¥ç©ºæ ¼åéç URL å表ï¼å½è·éè¶ é¾æ¥æ¶ï¼æµè§å¨ä¼åéå¸¦ææ£æ
PINGçPOST请æ±ãé常ç¨äºè·è¸ªã referrerpolicy-
å¨è·é龿¥æ¶ï¼referrer éè¦åéå¤å°å 容ï¼
no-referrerï¼ä¸ä¼åéRefereræ 头ãno-referrer-when-downgradeï¼Refereræ 头å°ä¸ä¼åéå°æªå¯ç¨ TLSï¼HTTPSï¼çæºä¸ãoriginï¼åéç referrer å°è¢«éå¶å¨å ¶é¡µé¢çæºï¼æ¹æ¡ã主æºå端å£ãorigin-when-cross-originï¼åéå°å ¶ä»æºç referrer å°åªå å«åè®®ã主æºå端å£ï¼è导èªå°ç¸åçæºä»å°å æ¬è·¯å¾ãsame-originï¼å°ååæºå°ååé referrerï¼ä½è·¨æºè¯·æ±ä¸å å« referrer ä¿¡æ¯ãstrict-originï¼å½åè®®å®å ¨çº§å«ä¿æä¸åï¼HTTPSâHTTPSï¼æ¶ï¼åªå°ææ¡£çæ¥æºä½ä¸º referrer åéï¼ä½ä¸è¦å°å ¶åéå°å®å ¨æ§è¾ä½çç®çå°ï¼HTTPSâHTTPï¼ãstrict-origin-when-cross-originï¼é»è®¤ï¼ï¼å¨æ§è¡åæºè¯·æ±æ¶åé宿´ç URLï¼å¨åè®®å®å ¨çº§å«ä¿æä¸åæ¶åªåéæºï¼HTTPSâHTTPSï¼ï¼å¯¹å®å ¨æ§è¾ä½çç®çå°ä¸åéæ å¤´ï¼HTTPSâHTTPï¼ãunsafe-urlï¼è¡¨ç¤º referrer å°ä¼å 嫿ºåè·¯å¾ï¼ä½æ¯ä¸å å«ç段ãå¯ç æç¨æ·åï¼ãæ¤å¼æ¯ä¸å®å ¨çï¼å 为å®å¯è½ä¼å°å TLS ä¿æ¤çèµæºçæºåè·¯å¾æ³é²å°ä¸å®å ¨çæºä¸ã
rel-
è¯¥å±æ§æå®äºç®æ 对象å°é¾æ¥å¯¹è±¡çå ³ç³»ã
target-
è¯¥å±æ§æå®å¨ä½å¤æ¾ç¤ºé¾æ¥ç URLï¼ä½ä¸ºæµè§ä¸ä¸æçåç§°ï¼æ ç¾ãçªå£æ
<iframe>ï¼ã以ä¸å ³é®è¯å¯¹å è½½ URL çä½ç½®æç¹æ®å«ä¹ï¼-
_selfï¼å½åæµè§ä¸ä¸æãï¼é»è®¤ï¼ -
_blankï¼é叏卿°æ ç¾é¡µæå¼ï¼ä½ç¨æ·å¯ä»¥éè¿é ç½®éæ©å¨æ°çªå£æå¼ã -
_parentï¼å½åæµè§ç¯å¢çç¶çº§æµè§ä¸ä¸æãå¦ææ²¡æç¶çº§æ¡æ¶ï¼è¡ä¸ºä¸_selfç¸åã -
_topï¼æé¡¶çº§çæµè§ä¸ä¸æï¼å½åæµè§ä¸ä¸æä¸æâé«âçç¥å ï¼ãå¦ææ²¡æç¥å ï¼è¡ä¸ºä¸_selfç¸åã -
_unfencedTopï¼å 许åµå ¥å¼å´æ æ¡æ¶å¯¼èªè³é¡¶çº§æ¡æ¶ï¼å³å¨å´æ æ¡æ¶æ ¹èç¹ä¸å±è¿è¡éåï¼ä¸åäºå ¶ä»ä¿çç®æ ï¼ã请注æï¼è¥å¨å´æ æ¡æ¶ä¸ä¸æä¹å¤ä½¿ç¨æ¤åè½ï¼å¯¼èªä»å°æåï¼ä½ä¸ä¼åä¿çå ³é®å飿 ·èµ·ä½ç¨ã夿³¨ï¼å¨
<a>å ç´ ä¸ä½¿ç¨target="_blank"é弿ä¾äºä¸ä½¿ç¨rel="noopener"ç¸åçrelè¡ä¸ºï¼å³ä¸ä¼è®¾ç½®window.openerã
-
type-
è¯¥å±æ§æå®å¨ä¸ä¸ª MIME ç±»å龿¥ç®æ çå½¢å¼çåªä½ç±»åãæ²¡æå ç½®çåè½ã
å·²å¼ç¨å±æ§
charset-
æ¤å±æ§å®ä¹é¾æ¥èµæºçå符ç¼ç ã
夿³¨ï¼è¯¥å±æ§å·²å¼ç¨ï¼ä¸åºç±ä½è 使ç¨ã请å¨é¾æ¥ç URL ä¸ä½¿ç¨ HTTP
Content-Typeæ 头ã coords-
ä¸
shape屿§ä¸å使ç¨ï¼ä»¥éå·åéçåæ å表ã name-
å¨å®ä¹ä¸ä¸ªå¯è½çç®æ ä½ç½®æ¶æ¾ç»æ¯å¿ éçãå¨ HTML 4.01 è§èä¸ï¼
<a>å ç´ å¯ä»¥åæ¶ä½¿ç¨idånameï¼åªè¦å®ä»¬æç¸åçå¼ã夿³¨ï¼ä½¿ç¨å ¨å±å±æ§
idæ¥ä»£æ¿ã rev-
æå®ä¸ä¸ªåå龿¥ï¼ä¸
rel屿§ä½ç¨ç¸åãå 为é常混乱èå¼ç¨ã shape-
å¾åæ å°ï¼image mapï¼ä¸è¶ 龿¥åºåçå½¢ç¶ã
夿³¨ï¼ä½¿ç¨
<area>å ç´ æ¥ä»£æ¿å¾åæ å°ã
æ éç¢
>强è°é¾æ¥ææ¬
龿¥å çå 容åºè¡¨æé¾æ¥çå»åï¼å³ä½¿è±ç¦»äºä¸ä¸æã
æ éç¢æ§å·®ç龿¥ææ¬
ä¸ä¸ªé常çé误å¨äºåªé¾æ¥äºâç¹å»è¿éâæâè¿éâè¯è¯ï¼
<p><a href="/products">å¨è¿é</a>äºè§£å°æå
³äº§åçæ´å¤ä¿¡æ¯ã</p>
ç»æ
æ éç¢æ§è¯å¥½ç龿¥ææ¬
幸è¿çæ¯ï¼è¿æ¯ä¸ä¸ªå¾å®¹æè§£å³çé®é¢ï¼èä¸å®é 䏿¯æ éç¢æ§å·®ççæ¬è¦çä¸äºï¼
<p>äºè§£<a href="/products">æå
³äº§å</a>çæ´å¤ä¿¡æ¯ã</p>
ç»æ
è¾ å©è½¯ä»¶æå¿«æ·é®æ¥ååºé¡µé¢ä¸çææé¾æ¥ãç¶èï¼æ éç¢æ§å¼ºç龿¥ææ¬å¯¹ææç¨æ·é½æå¥½å¤ãâååºææé¾æ¥âçå¿«æ·æ¹å¼æ¨¡ä»¿äºè§åæ£å¸¸çç¨æ·å¿«éæ«æé¡µé¢çæ¹å¼ã
onclick äºä»¶
éç¹å
ç´ å¸¸è¢«æ»¥ç¨ä¸ºä¼ªæé®ï¼éè¿å° href 屿§è®¾ç½®ä¸º # æ javascript:void(0) æ¥é²æ¢é¡µé¢å·æ°ï¼éåçå¬å
¶ click äºä»¶ã
è¿äºèåç href å¼å¨å¤å¶/æå¨é¾æ¥ã卿°çæ ç¾/çªå£ä¸æå¼é¾æ¥ã书ç¾ï¼æå½ JavaScript æ£å¨å è½½ãåºéæè¢«ç¦ç¨æ¶ï¼ä¼å¯¼è´æå¤è¡ä¸ºãå®ä»¬è¿åè¾
婿æ¯ï¼å¦å±å¹é
读å¨ï¼ä¼ è¾¾ä¸æ£ç¡®çè¯ä¹ã
è¯·ä½¿ç¨ <button> 代æ¿ãä¸è¬æ¥è¯´ï¼ä½ åºè¯¥åªä½¿ç¨è¶
龿¥æ¥å¯¼èªå°ä¸ä¸ªçæ£ç URLã
å¤é¨é¾æ¥ä¸é¾æ¥è³é HTML èµæº
éè¿ target="_blank" 卿°æ ç¾/çªå£ä¸æå¼ç龿¥ï¼ææåä¸è½½æä»¶ç龿¥ï¼åºè¯´æå¨è·è¸ªé¾æ¥æ¶å°åçä»ä¹ã
å½ä¸ä¸ªæ°çæ ç¾ãçªå£æåºç¨ç¨åºæå¤æå¼æ¶ï¼æä½è§åç¶åµç人ãåå©å±å¹é è¯»ææ¯å¯¼èªç人ææè®¤ç¥éç¢ç人å¯è½ä¼æå°å°æãèå¼ç读å±è½¯ä»¶çè³å¯è½ä¸ä¼å®£åè¿ç§è¡ä¸ºã
æå¼æ°æ ç¾é¡µ/æ°çªå£ç龿¥
<a target="_blank" href="https://www.wikipedia.org">
Wikipediaï¼å°å¨æ°æ ç¾é¡µä¸æå¼ï¼
</a>
ç»æ
龿¥è³é HTML èµæº
è¥ä½¿ç¨å¾æ è¡¨ç¤ºé¾æ¥è¡ä¸ºï¼è¯·ç¡®ä¿å
¶å¸¦æ alt 屿§ä»¥æè¿°å
¶ç¨éãå³ä½¿å¾æ 缺失ï¼alt 屿§çå
容ä»è½ä¼ è¾¾é¾æ¥çè¡ä¸ºã
<p>
<a href="https://www.wikipedia.org/" target="_blank">
ç»´åºç¾ç§
<img src="new-tab.svg" width="14" alt="ï¼å¨æ°æ ç¾é¡µä¸æå¼ï¼" />
</a>
<br />
<a href="2017-annual-report.ppt">
2017 年度æ¥å
<img src="powerpoint.svg" width="14" alt="ï¼PowerPoint æä»¶ï¼" />
</a>
</p>
<p>
<a href="https://www.wikipedia.org/" target="_blank">
ç»´åºç¾ç§
<img src="missing-icon.svg" width="14" alt="ï¼å¨æ°æ ç¾é¡µä¸æå¼ï¼" />
</a>
<br />
<a href="2017-annual-report.ppt">
2017 年度æ¥å
<img src="missing-icon.svg" width="14" alt="ï¼PowerPoint æä»¶ï¼" />
</a>
</p>
ç»æ
è·³è½¬é¾æ¥
è·³è½¬é¾æ¥ï¼skip linkï¼æ¯å¨ <body> å
容ä¸å°½å¯è½æ©å°æ¾ç½®ä¸ä¸ªé¾æ¥ï¼æå页é¢ä¸»è¦å
容çå¼å¤´ãé常æ
åµä¸ï¼CSS ä¼å°è·³è½¬é¾æ¥éèå¨å±å¹ä¹å¤ï¼ç´å°è¢«èç¦ã
<body>
<a href="#content" class="skip-link">跳转è³ä¸»è¦å
容</a>
<header>â¦</header>
<!-- è·³è½¬é¾æ¥ä¼è·³è½¬è³è¿é -->
<main id="content"></main>
</body>
.skip-link {
position: absolute;
top: -3em;
background: #fff;
}
.skip-link:focus {
top: 0;
}
ç»æ
è·³è½¬é¾æ¥è®©é®çç¨æ·ç»è¿å¤ä¸ªé¡µé¢ä¸éå¤çå 容ï¼å¦æ é¢å¯¼èªã
è·³è¿é¾æ¥å¯¹ä¾èµè¾ 婿æ¯ï¼å¦å¼å ³æ§å¶ãè¯é³æä»¤æå£æ§ç¬/头æ§ç¬ï¼è¿è¡å¯¼èªç人群尤为å®ç¨ï¼å 为å¨è¿äºè®¾å¤æä½ä¸ï¼é个ç¹å»éå¤é¾æ¥çè¿ç¨å¾å¾ååè´¹åã
尺寸åè·ç¦»
尺寸
交äºå¼å ç´ ï¼å¦é¾æ¥ï¼åºæä¾è¶³å¤å¤§çåºåï¼ä»¥ä¾¿äºæ¿æ´»å®ä»¬ãè¿æå©äºåç§äººï¼å æ¬é£äºæè¿å¨æ§å¶é®é¢ç人åé£äºä½¿ç¨ä¸ç²¾ç¡®è¾å ¥ç人ï¼å¦è§¦æ¸å±ã建议æå°å°ºå¯¸ä¸º 44Ã44 CSS åç´ ã
æ£æå 容ä¸ççº¯ææ¬é¾æ¥ä¸åè¿ä¸è¦æ±å½±åï¼ä½ç¡®ä¿æè¶³å¤çææ¬è¶ é¾æ¥ï¼ä»¥ä¾¿äºæ¿æ´»ï¼ä»ç¶æ¯ä¸ä¸ªå¥½ä¸»æã
- çè§£æåæ å 2.5.5ï¼ç®æ 尺寸
- ç®æ å°ºå¯¸åæ å 2.5.5
- å¿«éæµè¯ï¼å¤§å触æ¸ç®æ
è·ç¦»
交äºå¼å ç´ ï¼å¦é¾æ¥ï¼æ¾ç½®å¨è§è§ä¸å¾è¿çå°æ¹ï¼åºè¯¥æç©ºé´å°å®ä»¬åå¼ãé´éæå©äºæè¿å¨æ§å¶é®é¢ç人ï¼å¦åä»ä»¬å¯è½ä¼æå¤å°æ¿æ´»é误çäºå¨å 容ã
é´éå¯ä»¥ä½¿ç¨ CSS 屿§æ¥å建ï¼å¦ marginã
示ä¾
>龿¥è³ç»å¯¹ URL
HTML
<a href="https://www.mozilla.com">Mozilla</a>
ç»æ
龿¥è³ç¸å¯¹ URL
HTML
<a href="//example.com">ç¸å¯¹äºåè®®ç URL</a>
<a href="/zh-CN/docs/Web/HTML">ç¸å¯¹äºæºç URL</a>
<a href="p">ç¸å¯¹äºç®å½ç URL</a>
<a href="./p">ç¸å¯¹äºç®å½ç URL</a>
<a href="../p">ç¸å¯¹äºç¶ç®å½ç URL</a>
ç»æ
龿¥è³åä¸é¡µé¢çå ç´
<!-- <a> å
ç´ é¾æ¥å°ä¸é¢çæä¸ç« è -->
<p><a href="#Section_further_down">跳转è³ä¸æ¹æ é¢</a></p>
<!-- è¦é¾æ¥å°çæ é¢ -->
<h2 id="Section_further_down">æ´ä¸æ¹çé¨å</h2>
ç»æ
夿³¨ï¼å¯ä»¥ä½¿ç¨ href="#top" æç©ºç段ï¼href="#"ï¼é¾æ¥å°å½å页é¢çé¡¶é¨ï¼å
·ä½å®ä¹è¯¦è§ HTML è§èã
龿¥è³é®ç®±å°å
è¦å建å¨ç¨æ·ççµåé®ä»¶ç¨åºä¸æå¼ç龿¥ä»¥ä¾¿åéæ°é®ä»¶ï¼è¯·ä½¿ç¨ mailto: åè®®ï¼
<a href="mailto:nowhere@mozilla.org">åæä¸ªå°æ¹åé®ä»¶</a>
ç»æ
æå
³ mailto: URL ç详ç»ä¿¡æ¯ï¼ä¾å¦å
å«ä¸»é¢ææ£æï¼ï¼è¯·åé
çµåé®ä»¶é¾æ¥æ RFC 6068ã
龿¥è³çµè¯å·ç
<a href="tel:+49.157.0156">+49 157 0156</a>
<a href="tel:+1(800)555-0123">(800) 555-0123</a>
ç»æ
tel: 龿¥çè¡ä¸ºå 设å¤è½åèå¼ï¼
- ç§»å¨è®¾å¤ä¼èªå¨æ¨æè¯¥å·ç ã
- 大夿°æä½ç³»ç»é½å å«å¯æ¨æçµè¯çç¨åºï¼å¦ Skype æ FaceTimeã
- ç½ç«å¯éè¿
registerProtocolHandlerå®ç°çµè¯å¼å«åè½ï¼ä¾å¦web.skype.comã - å ¶ä»è¡ä¸ºå æ¬å°å·ç ä¿åè³éè®¯å½æåéè³å ¶ä»è®¾å¤ã
æå
³ tel: URL æ¹æ¡çè¯æ³ãéå åè½åå
¶ä»ç»èï¼è¯·åé
RFC 3966ã
ä½¿ç¨ download 屿§å° <canvas> ä¿å为 PNG æä»¶
è¦å° <canvas> å
ç´ çå
容ä¿å为å¾åï¼å¯å建ä¸ä¸ªé¾æ¥ï¼å
¶ href 屿§ä½¿ç¨ JavaScript çæç data: URL æåç»å¸æ°æ®ï¼è download 屿§å为ä¸è½½ç PNG æä»¶æå®æä»¶åï¼
å ·æä¿å龿¥çç»å¾åºç¨
HTML
<p>
æä½é¼ æ æé®å¹¶ç§»å¨æ¥ç»ç»ã
<a href="" download="my_painting.png">ä¸è½½æçç»ç»ä½å</a>
</p>
<canvas width="300" height="300"></canvas>
CSS
html {
font-family: sans-serif;
}
canvas {
background: white;
border: 1px dashed;
}
a {
display: inline-block;
background: #6699cc;
color: white;
padding: 5px 10px;
}
JavaScript
const canvas = document.querySelector("canvas");
const c = canvas.getContext("2d");
c.fillStyle = "hotpink";
let isDrawing;
function draw(x, y) {
if (isDrawing) {
c.beginPath();
c.arc(x, y, 10, 0, Math.PI * 2);
c.closePath();
c.fill();
}
}
canvas.addEventListener("mousemove", (event) =>
draw(event.offsetX, event.offsetY),
);
canvas.addEventListener("mousedown", () => (isDrawing = true));
canvas.addEventListener("mouseup", () => (isDrawing = false));
document
.querySelector("a")
.addEventListener(
"click",
(event) => (event.target.href = canvas.toDataURL()),
);
ç»æ
å®å ¨ä¸éç§
<a> å
ç´ å¯è½å¯¹ç¨æ·çéç§åå®å
¨é æå½±åã详æ
请åé
Referer æ 头ï¼éç§ä¸å®å
¨é®é¢ã
卿ªä½¿ç¨ rel="noreferrer" å rel="noopener" çæ
åµä¸ä½¿ç¨ target="_blank" 使ç½ç«æå window.opener API æ¼æ´æ»å»ï¼ä½é注æï¼å¨æ°çæµè§å¨ä¸ï¼è®¾ç½® target="_blank" é»è®¤æä¾ä¸ rel="noopener" ç¸åç鲿¤æºå¶ã详æ
请åé
æµè§å¨å
¼å®¹æ§ã
ææ¯æ¦è¦
| å 容åç±» | æµå¼å 容ã çè¯å 容ã 交äºå 容ã坿ç¥å 容 |
|---|---|
| å 许çå 容 |
éæçï¼ä½æ¯å代ä¸å¯ä»¥ä¸ºäº¤äºå
容æ
<a> å
ç´ ï¼ä¸å代ä¸å¯ä»¥æå® tabindex 屿§
|
| æ ç¾çç¥ | ä¸å 许ï¼å¼å§æ ç¾åç»ææ ç¾é½ä¸è½çç¥ã |
| å 许çç¶å ç´ |
任使¥åæµå¼å
容ä½ä¸æ¯å¦å¤ä¸ä¸ª <a> å
ç´ çå
ç´ ã
|
| éå«ç ARIA è§è² |
å½ href 屿§å卿¶ï¼ä¸º linkï¼å¦å为 generic
|
| å 许ç ARIA è§è² |
å½ å½
|
| DOM æ¥å£ | HTMLAnchorElement |
è§è
| è§è |
|---|
| HTML > # the-a-element > |
æµè§å¨å ¼å®¹æ§
åè§
<link>ä¸<a>类似ï¼ä½ç¨äºç¨æ·çä¸å°çå æ°æ®è¶ 龿¥ã:linkæ¯ä¸ä¸ª CSS 伪类ï¼å°å¹é <a>å ç´ ï¼å ¶href屿§ä¸ç URL ç¨æ·å°æªè®¿é®ã:visitedæ¯ä¸ä¸ª CSS 伪类ï¼å°å¹é <a>å ç´ ï¼å ¶href屿§ä¸ç URL è¢«ç¨æ·å¨è¿å»è®¿é®è¿ã:any-linkæ¯ä¸ä¸ª CSS 伪类ï¼å°å¹é 带æhref屿§ç<a>å ç´ ã- ææ¬çæ®µæ¯æ·»å å° URL çç¨æ·ä»£çæä»¤ï¼å 许å 容ä½è 龿¥å°é¡µé¢ä¸çç¹å®ææ¬ï¼èä¸éè¦ IDã