<a>ï¼è¶ é£çµå ç´
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
* Some parts of this feature may have varying levels of support.
<a> HTML å
ç´ ï¼æç¨±é¨é»å
ç´ ï¼ï¼å
·æå
¶ href 屬æ§ï¼ç¨æ¼åµå»ºæåç¶²é ãæä»¶ãé»åéµä»¶å°åãåä¸é é¢ä¸çä½ç½®æä»»ä½å
¶ä» URL å¯å®ä½çæ±è¥¿ã
æ¯å <a> å
ç´ å
§çå
§å®¹æè©²æç¤ºé£çµçç®çå°ã妿åå¨ href 屬æ§ï¼åå¨ç¦é»ä½æ¼ <a> å
ç´ ä¸ææä¸ Enter éµå°æ¿æ´»å®ã
å試ä¸ä¸
<p>You can reach Michael at:</p>
<ul>
<li><a href="https://example.com">Website</a></li>
<li><a href="mailto:m.bluth@example.com">Email</a></li>
<li><a href="tel:+123456789">Phone</a></li>
</ul>
li {
margin-bottom: 0.5rem;
}
屬æ§
æ¤å ç´ ç屬æ§å æ¬å ¨å屬æ§ã
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 ççä¿¡æåæ¶æ¯ - å管網é ç覽å¨å¯è½ä¸æ¯æå
¶ä» URL æ¹æ¡ï¼ä½ç¶²ç«å¯ä»¥ä½¿ç¨
registerProtocolHandler()é²è¡è¨ç½®
hreflang-
æç¤ºé£çµ URL ç人é¡èªè¨çæç¤ºãæ²æå §å»ºåè½ãå 許çå¼èå ¨å
lang屬æ§ç¸åã ping-
URL çç©ºæ ¼åéå表ãç¶é»æé£çµæï¼ç覽å¨å°åéäº URL ç¼é
POSTè«æ±ï¼å §å®¹çºPINGãéå¸¸ç¨æ¼è·è¹¤ã referrerpolicy-
è·é¨é£çµæç¼éçå¼ç¨è çç¨åº¦ã
no-referrerï¼ä¸ç¼éRefereræ¨é ãno-referrer-when-downgradeï¼ä¸ç¼éRefereræ¨é è³æ²æ TLSï¼HTTPSï¼ç便ºãoriginï¼ç¼éçå¼ç¨è å°å éæ¼å¼ç¨é é¢ç便ºï¼å ¶åå®ã主æ©åéè¨å ãorigin-when-cross-originï¼ç¼éçµ¦å ¶ä»ä¾æºçå¼ç¨è å°å éæ¼åå®ã主æ©å端å£ãå°åä¸ä¾æºçå°èªä»å°å å«è·¯å¾ãsame-originï¼å°æ¼åä¸ä¾æºï¼å°ç¼éå¼ç¨è ï¼ä½è·¨ä¾æºè«æ±å°ä¸å å«å¼ç¨è ä¿¡æ¯ãstrict-originï¼å å¨åå®å®å ¨ç´å¥ä¿æä¸è®æï¼HTTPSâHTTPSï¼ç¼éæä»¶çæºä½çºå¼ç¨è ï¼ä½ä¸è¦å°å ¶ç¼é給ä¸å¤ªå®å ¨çç®çå°ï¼HTTPSâHTTPï¼ãstrict-origin-when-cross-originï¼é»èªå¼ï¼ï¼å°æ¼åä¸ä¾æºè«æ±ï¼ç¼é宿´ç URLï¼å å¨åå®å®å ¨ç´å¥ä¿æä¸è®æï¼HTTPSâHTTPSï¼ç¼éæºï¼å°æ¼ä¸å¤ªå®å ¨çç®çå°ï¼HTTPSâHTTPï¼ï¼ä¸ç¼éæ¨é ãunsafe-urlï¼å¼ç¨è å°å æ¬ä¾æºåè·¯å¾ï¼ä½ä¸å æ¬ç段ãå¯ç¢¼æç¨æ¶åï¼ãæ¤å¼ä¸å®å ¨ï¼å çºå®å°ä¾èª TLS ä¿è·è³æºç便ºåè·¯å¾æ´©é²çµ¦ä¸å®å ¨ç便ºã
rel-
é£çµ URL çéä¿ï¼ä½çºç©ºæ ¼åéçé£çµé¡åã
target-
è¦å¨ä½è顯示é£çµ URLï¼ä½çºç覽ä¸ä¸æï¼ä¸åé¸é å¡ãçªå£æ
<iframe>ï¼çå稱ã以ä¸ééµåå°æ¼å è¼ URL çä½ç½®å ·æç¹æ®æç¾©ï¼_selfï¼ç¶åç覽ä¸ä¸æãï¼é»èªï¼_blankï¼é常æ¯ä¸åæ°é¸é å¡ï¼ä½ç¨æ¶å¯ä»¥é ç½®ç覽å¨ä»¥æéæ°çªå£ã_parentï¼ç¶åç覽ä¸ä¸æçç¶ç´ãå¦ææ²æç¶ç´ï¼åè_selfè¡çºç¸åã_topï¼æä¸å±¤çç覽ä¸ä¸æãå ·é«ä¾èªªï¼éæå³èç¶åä¸ä¸æçç¥å ä¸çãæé«ãä¸ä¸æãå¦ææ²æç¥å ï¼åè_selfè¡çºç¸åã_unfencedTopï¼å 許åµå ¥çæåæ¬æ¡æ¶å°èªå°æé å±¤æ¡æ¶ï¼å³è¶ åºæåæ¬æ¡æ¶æ ¹çéæ·ï¼èå ¶ä»ä¿çç®æ¨ä¸åï¼ãè«æ³¨æï¼å¦æå¨æåæ¬æ¡æ¶ä¸ä¸æä¹å¤ä½¿ç¨æ¤é¸é ï¼åå°èªä»å°æåï¼ä½å®ä¸æåä¿çééµå飿¨£éä½ã
å註ï¼å°
target="_blank"è¨ç½®å¨<a>å ç´ ä¸ï¼é±å«æä¾äºèè¨ç½®rel="noopener"ç¸åçrelè¡çºï¼å®ä¸è¨ç½®window.openerã type-
æç¤ºé£çµ URL çæ ¼å¼ï¼ä½¿ç¨ MIME é¡åãæ²æå §å»ºåè½ã
å·²æ£ç¨ç屬æ§
charset-
æç¤ºé£çµ URL ç character encodingã
å註ï¼éå屬æ§å·²æ£ç¨ï¼ä¸æè©²è¢«ä½è 使ç¨ãè«å¨é£çµç URL ä¸ä½¿ç¨ HTTP
Content-Typeæ¨é ã coords-
è
shape屬æ§ä¸èµ·ä½¿ç¨ãéèåéç座æ¨å表ã name-
ç¨æ¼å¨é é¢ä¸å®ç¾©å¯è½çç®æ¨ä½ç½®ãå¨ HTML 4.01 ä¸ï¼
idånameé½å¯ä»¥å¨<a>ä¸ä½¿ç¨ï¼åªè¦å®åå ·æç¸åçå¼ãå註ï¼è«æ¹ç¨å ¨å屬æ§
idã rev-
æå®ååé£çµï¼èå½¢ç屬æ§ç¸åãç±æ¼é常混äºè被æ£ç¨ã
shape-
ååå°åä¸è¶ é£çµååçå½¢çã
å註ï¼è«æ¹ç¨
<area>å ç´ ä»£æ¿ååå°åã
ç¯ä¾
>鿥å°çµå° URL
HTML
<a href="https://www.mozilla.com">Mozilla</a>
çµæ
鿥å°ç¸å° URL
HTML
<a href="//example.com">Scheme-relative URL</a>
<a href="/zh-TW/docs/Web/HTML">Origin-relative URL</a>
<a href="./p">Directory-relative URL</a>
çµæ
鿥å°åä¸é é¢ä¸çå ç´
<!-- <a> element links to the section below -->
<p><a href="#Section_further_down">Jump to the heading below</a></p>
<!-- Heading to link to -->
<h2 id="Section_further_down">Section further down</h2>
çµæ
å註ï¼ä½ å¯ä»¥ä½¿ç¨ href="#top" æç©ºç段ï¼href="#"ï¼ä¾éæ¥å°ç¶åé é¢çé é¨ï¼å¦ HTML è¦ç¯ä¸æå®ç¾©ã
鿥å°é»åéµä»¶å°å
è¦åµå»ºéæ¥ï¼è®ç¨æ¶å¯ä»¥ä½¿ç¨ä»åçé»åéµä»¶ç¨åºæéæ°æ¶æ¯ï¼è«ä½¿ç¨ mailto: æ¹æ¡ï¼
<a href="mailto:nowhere@mozilla.org">Send email to nowhere</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>
Paint by holding down the mouse button and moving it.
<a href="" download="my_painting.png">Download my painting</a>
</p>
<canvas width="300" height="300"></canvas>
CSS
html {
font-family: sans-serif;
}
canvas {
background: #fff;
border: 1px dashed;
}
a {
display: inline-block;
background: #69c;
color: #fff;
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" ç¸åçä¿è·æ©å¶ã詳細信æ¯è«åè¦ç覽å¨ç¸å®¹æ§ã
ç¡éç¤è°é¡
>強鿥æå
éæ¥å §å®¹ææç¤ºéæ¥çç®çå°ï¼å³ä½¿æ¯å¨ä¸ä¸æä¹å¤ã
ç¡éç¤æ§å·®ç弱鿥æå
ä¸å常è¦çé¯èª¤æ¯åªå°ã黿æ¤èãæãé裡ãä¹é¡çè©ä½çºéæ¥ï¼
<p>Learn more about our products <a href="/products">here</a>.</p>
çµæ
強鿥æå
幸éçæ¯ï¼éæ¯ä¸å容æè§£æ±ºçåé¡ï¼èä¸å¯¦é䏿¯ç¡æ³è¨ªåççæ¬éè¦çï¼
<p>Learn more <a href="/products">about our products</a>.</p>
çµæ
è¼å©è»ä»¶ææ·å¾å¯ä»¥ååºé é¢ä¸çææéæ¥ãç¶èï¼å¼·éæ¥æåæçæ¼ææç¨æ¶ââãååºææéæ¥ãçå¿«æ·æ¹å¼æ¨¡æ¬äºè¦è¦ºç¨æ¶å¿«éææé é¢çæ¹å¼ã
黿äºä»¶
常常å°é¨é»å
ç´ èª¤ç¨çºåæéï¼å°å®åç href è¨ç½®çº # æ javascript:void(0) 以鲿¢é é¢å·æ°ï¼ç¶å¾ç£è½å®åç click äºä»¶ã
éäºèåç href å¼å¨è¤è£½/æå鿥ã卿°æ¨ç±¤/çªå£ä¸æééæ¥ãæ¸ç±¤æç¶ JavaScript å è¼ãé¯èª¤æç¦ç¨ææå¼èµ·æå¤è¡çºãå®åä¹åè¼å©æè¡ï¼å¦è¢å¹é±è®å¨ï¼å³éäºä¸æ£ç¢ºçèªç¾©ã
è«æ¹ç¨ <button>ãä¸è¬ä¾èªªï¼ä½ æè©²å
å°è¶
éæ¥ç¨æ¼å°èªå°å¯¦é URLã
å¤é¨éæ¥å鿥å°é HTML è³æº
éé target="_blank" 卿°æ¨ç±¤/çªå£ä¸æéçéæ¥ï¼æè
æåä¸è¼æä»¶ç鿥æè©²æç¤ºç¶éæ¥è¢«é»æææç¼çä»éº¼ã
è¦ååæç人ã使ç¨è¢å¹é±è®æè¡é²è¡å°èªç人æåå¨èªç¥åé¡ç人ï¼å¨æ°æ¨ç±¤ãçªå£ææç¨ç¨åºæå¤æéæå¯è½ææå°å°æãè¼èçè¢å¹é±è®è»ä»¶çè³å¯è½ä¸æå®£åé種è¡çºã
卿°æ¨ç±¤/çªå£ä¸æéç鿥
<a target="_blank" href="https://www.wikipedia.org">
Wikipedia (opens in new tab)
</a>
çµæ
鿥å°é HTML è³æº
<a href="2017-annual-report.ppt">2017 Annual Report (PowerPoint)</a>
å¦æä½¿ç¨åæ¨ä¾è¡¨ç¤ºéæ¥è¡çºï¼è«ç¢ºä¿å®å ·æ alt ææ¬ï¼
<a target="_blank" href="https://www.wikipedia.org">
Wikipedia
<img alt="(opens in new tab)" src="newtab.svg" />
</a>
<a href="2017-annual-report.ppt">
2017 Annual Report
<img alt="(PowerPoint file)" src="ppt-icon.svg" />
</a>
çµæ
è·³è½éæ¥
è·³è½éæ¥æ¯ä¸åç¡å¯è½æ¾å¨ <body> å
§å®¹çæåé¢çéæ¥ï¼æåé é¢ä¸»è¦å
§å®¹çéé ãé常ï¼CSS å°è·³è½éæ¥é±èå¨è¢å¹ä¹å¤ï¼ç´å°è¢«èç¦çºæ¢ã
<body>
<a href="#content" class="skip-link">Skip to main content</a>
<header>â¦</header>
<!-- The skip link jumps to here -->
<main id="content"></main>
</body>
.skip-link {
position: absolute;
top: -3em;
background: #fff;
}
.skip-link:focus {
top: 0;
}
çµæ
è·³è½éæ¥è®ä½¿ç¨éµç¤çç¨æ¶å¯ä»¥è·³éå¨å¤åé é¢ä¸éè¤åºç¾çå §å®¹ï¼ä¾å¦é é¨å°èªã
å°æ¼ä½¿ç¨è¼å©æè¡ï¼å¦åææ§å¶ãèªé³å½ä»¤æå£æ/é æ¡¿é²è¡å°èªç人ä¾èªªï¼è·³è½éæ¥å°¤å ¶æç¨ï¼å çºç§»åéç¨ä¸éè¤éæ¥çè¡çºå¯è½å¾è²»åã
尺寸èç¸è¿æ§
尺寸
äºåå ç´ ï¼ä¾å¦é£çµï¼æè©²æä¾è¶³å¤ 大çååï¼ä»¥ä¾¿è¼é¬å°ååå®åãéæå©æ¼å種人ï¼å æ¬é£äºæéåæ§å¶åé¡ç人以å使ç¨ä¸ç²¾ç¢ºè¼¸å ¥ï¼ä¾å¦è§¸æ¸è¢å¹ï¼ç人ã建è°çæå°å°ºå¯¸çº 44Ã44 CSS åç´ ã
卿£æå §å®¹ä¸å å 嫿æ¬ç鿥ä¸åæ¤è¦æ±çéå¶ï¼ä½ç¢ºä¿æè¶³å¤ çææ¬è¢«è¶ éæ¥ä»¥ä¾¿è¼é¬ååä»ç¶æ¯ä¸å好主æã
ç¸è¿æ§
æ¾ç½®å¨è¦è¦ºä¸ç¸é°çäºåå ç´ ï¼ä¾å¦é£çµï¼æè©²æç©ºéå°å®ååéãéè·æå©æ¼éåæ§å¶åé¡ç人ï¼å¦åä»åå¯è½ææå¤ååé¯èª¤çäºåå §å®¹ã
éè·å¯ä»¥ä½¿ç¨ CSS 屬æ§å¦ margin åµå»ºã
æè¡æè¦
| å §å®¹é¡å | æµå §å®¹ã段è½åå §å®¹ã äºååå §å®¹ãæ«åå §å®¹ã |
|---|---|
| å 許çå §å®¹ | éæå §å®¹æ¨¡åï¼é¤äºæ²æåå«å¯ä»¥æ¯äºååå §å®¹æä¸å a å ç´ ï¼ä¸¦ä¸æ²æåå«å¯ä»¥å ·ææå®ç tabindex 屬æ§ã |
| æ¨ç±¤çç¥ | ä¸å 許ï¼éå§åçµææ¨ç±¤é½æ¯å¿ é çã |
| å 許çç¶å ç´ |
任使¥åæµå
§å®¹çå
ç´ ï¼ä½ä¸å
æ¬å
¶ä» <a> å
ç´ ã
|
| é±å«ç ARIA è§è² |
ç¶åå¨ href å±¬æ§æçº linkï¼å¦åçº
generic
|
| å 許ç ARIA è§è² |
ç¶åå¨ ç¶ä¸åå¨
|
| DOM ä»é¢ | HTMLAnchorElement |
è¦ç¯
| Specification |
|---|
| HTML > # the-a-element > |
ç覽å¨ç¸å®¹æ§
åè¦
<link>é¡ä¼¼æ¼<a>ï¼ä½ç¨æ¼å°ç¨æ¶ä¸å¯è¦çå æ¸æè¶ 鿥ã:linkæ¯ä¸å CSS èæ¬é¡ï¼å°å¹é <a>å ç´ ï¼å ¶ä¸href屬æ§ä¸ç URL å°æªè¢«ç¨æ¶è¨ªåéã:visitedæ¯ä¸å CSS èæ¬é¡ï¼å°å¹é <a>å ç´ ï¼å ¶ä¸href屬æ§ä¸ç URL æ¾ç¶è¢«ç¨æ¶è¨ªåéã:any-linkæ¯ä¸å CSS èæ¬é¡ï¼å°å¹é å ·æhref屬æ§ç<a>å ç´ ã- æåçæ®µæ¯æ·»å å° URL ä¸çç¨æ¶ä»£çæä»¤ï¼å è¨±å §å®¹ä½è 鿥å°é é¢ä¸çç¹å®ææ¬ï¼èä¸éè¦ IDã