HTML å¨è®¾è®¡æ¶èèå°äºæ°æ®ç坿©å±æ§ï¼è¿äºæ°æ®åºä¸ç¹å®å
ç´ ç¸å
³èï¼ä½æ éå
·æä»»ä½å®ä¹çå«ä¹ãdata-*
屿§å
许æä»¬å¨æ åãè¯ä¹åç HTML å
ç´ ä¸åå¨é¢å¤çä¿¡æ¯ï¼èä¸éè¦ä½¿ç¨ç±»ä¼¼äºéæ å屿§æè
DOM é¢å¤å±æ§ä¹ç±»çæå·§ã
è¯æ³é常ç®åãææå¨å
ç´ ä¸ä»¥ data-
å¼å¤´ç屿§åä¸ºæ°æ®å±æ§ãæ¯å¦è¯´ä½ æä¸ç¯æç« ï¼èä½ åæ³è¦åå¨ä¸äºä¸éè¦æ¾ç¤ºå¨æµè§å¨ä¸çé¢å¤ä¿¡æ¯ãè¯·ä½¿ç¨ data
屿§ï¼
<main>
<article
id="electric-cars"
data-columns="3"
data-index-number="12314"
data-parent="cars">
<!-- æå
³çµè½¦çå
容 -->
</article>
<article
id="solar-cars"
data-columns="3"
data-index-number="12315"
data-parent="cars">
<!-- æå
³å¤ªé³è½è½¦çå
容 -->
</article>
<article
id="flying-cars"
data-columns="4"
data-index-number="12316"
data-parent="cars">
<!-- æå
³é£è¡è½¦çå
容 -->
</article>
</main>
JavaScript 访é®
å¨å¤é¨ä½¿ç¨ JavaScript å»è®¿é®è¿äºå±æ§çå¼åæ ·é常ç®åãä½ å¯ä»¥ä½¿ç¨ getAttribute()
é
åå®ä»¬å®æ´ç HTML åç§°å»è¯»åå®ä»¬ï¼ä½æ åå®ä¹äºä¸ä¸ªæ´ç®åçæ¹æ³ï¼ä½ å¯ä»¥éè¿ dataset
屿§è¯»åå°ä¸ä¸ª DOMStringMap
ã
为äºä½¿ç¨ dataset
对象å»è·åå°æ°æ®å±æ§ï¼éè¦è·å屿§åä¸ data-
ä¹åçé¨åï¼è¦æ³¨æï¼ç ´æå·è¿æ¥çåç§°éè¦æ¹å为驼峰å½åï¼ã
const article = document.querySelector("#electric-cars");
// 以ä¸ä»£ç åæ ·å¥æï¼
// const article = document.getElementById("electric-cars")
article.dataset.columns; // "3"
article.dataset.indexNumber; // "12314"
article.dataset.parent; // "cars"
æ¯ä¸ä¸ªå±æ§é½æ¯ä¸ä¸ªå¯è¯»åçå符串ãå¨ä¸é¢çä¾åä¸ï¼article.dataset.columns = 5
å°ä¼è°æ´å±æ§çå¼ä¸º 5ã
è¿å¯ä»¥å° document.querySelector()
æ document.querySelectorAll()
䏿°æ®å±æ§éæ©å¨ä¸èµ·ä½¿ç¨ï¼ä»¥æ¥æ¾å¹é
çä¸ä¸ªå
ç´ æææå
ç´ ï¼
// æ¥æ¾ææå
·æ data-columns 屿§çå
ç´
const articles = document.querySelectorAll("[data-columns]");
// æ¥æ¾ææå
·æ data-columns="3" çå
ç´
const threeColumnArticles = document.querySelectorAll('[data-columns="3"]');
// å¯ä»¥å¨è¿äºç»æä¸è¿ä»£
threeColumnArticles.forEach((article) => {
console.log(article.dataset.indexNumber);
});
CSS 访é®
注æï¼å³ä½¿ data 屿§ä¸ºçº¯ HTML 屿§ï¼ä¹åæ ·è½è¢« CSS 访é®ãæ¯å¦å¯ä»¥éè¿ CSS ççæå
容使ç¨å½æ° attr()
æ¥æ¾ç¤ºæç« ç¶æ°æ®çå
容ï¼
article::before {
content: attr(data-parent);
}
ä½ ä¹åæ ·å¯ä»¥å¨ CSS ä¸ä½¿ç¨å±æ§éæ©å¨æ ¹æ®æ°æ®æ¥æ¹åæ ·å¼ï¼
article[data-columns="3"] {
width: 400px;
}
article[data-columns="4"] {
width: 600px;
}
æ°æ®å¼æ¯å符串ãå¿ é¡»å¨éæ©å¨ä¸å°æ°å¼ç¨å¼å·æ¬èµ·æ¥ï¼æ ·å¼æè½çæã
ç¤ºä¾ æ ·å¼åä½åå¦ä½ æä¸ä¸ª callout
ç±»ï¼ç°å¨éè¦å®ç°ä¸åçåä½ï¼å¦ânoteâåâwarningâãä¼ ç»ä¸ï¼äººä»¬åªæ¯ä½¿ç¨ä¸åçç±»åã
<div class="callout callout--note">...</div>
<div class="callout callout--warning">...</div>
.callout {
margin: 0.5em 0;
padding: 0.5em;
border-radius: 4px;
border-width: 2px;
border-style: solid;
}
.callout--note {
border-color: rgb(15 15 235);
background-color: rgb(15 15 235 / 0.2);
}
.callout--warning {
border-color: rgb(235 15 15);
background-color: rgb(235 15 15 / 0.2);
}
éè¿æ°æ®å±æ§ï¼å¯ä»¥æè¿æ ·çæ¿ä»£æ¹æ¡ï¼
<div class="callout">...</div>
<div class="callout" data-variant="note">...</div>
<div class="callout" data-variant="warning">...</div>
.callout {
margin: 0.5em 0;
padding: 0.5em;
border-radius: 4px;
border-width: 2px;
border-style: solid;
}
/* Default style */
.callout:not([data-variant]) {
border-color: rgb(15 15 15);
background-color: rgb(15 15 15 / 0.2);
}
.callout[data-variant="note"] {
border-color: rgb(15 15 235);
background-color: rgb(15 15 235 / 0.2);
}
.callout[data-variant="warning"] {
border-color: rgb(235 15 15);
background-color: rgb(235 15 15 / 0.2);
}
è¿æ ·åæå¤ç§å¥½å¤ï¼
callout--note
æ¶ä¸åæ¶æ·»å callout
ï¼æåæ¶åºç¨å¤ä¸ªåä½ãdata-variant
屿§å
许éè¿å
衬æç±»åæ£æ¥å¯¹ææå¼è¿è¡éæåæãdiv.dataset.variant = "warning";
ä»£æ¿æä½ classList
ï¼åè
éè¦å¤ä¸ªæ¥éª¤ãè®¸å¤ web åºç¨ç¨åºå° JavaScript æ°æ®ä½ä¸ºå ¶ç¨æ·çé¢ç¶æçç宿¥æºãå¨è¿ç§æ åµä¸ï¼åªéæ·»å æ¸²ææéç HTML 屿§å³å¯ãæ°æ®å±æ§å¨ä»¥ä¸æ åµä¸é常æç¨ï¼ææå 容é½åå¨äºæ è®°ä¸ï¼JavaScript ä» ç¨äºå¤çäºä»¶ãåæ¥ç¶æçã
ä¾å¦ï¼å¨æä»¬çå¸¦ææ»å¨è¾¹è·çå¾çå¨ç»ç¤ºä¾ä¸ï¼æä»¬æä¸ä¸ªå·²ç»å¡«å
äºè®¸å¤ <img>
å
ç´ ç HTML 页é¢ãå¾çæºæååå¨å¨ data-src
ä¸ï¼ä»¥é²æ¢è§¦åä»»ä½è¯·æ±ï¼èçæ£ç src
ä»
å¨ <img>
æ»å¨å°è§å¾æ¶æä¼æ·»å ãæ°æ®ï¼å¾çæºï¼ä¸å
ç´ ä½äºåä¸ä½ç½®ï¼JavaScript åªè´è´£å®ä¹è¡ä¸ºã
ä¸è¦å¨æ°æ®å±æ§ä¸åå¨åºå¯è§åå¯è®¿é®çå
容ï¼å 为è¾
婿æ¯å¯è½æ æ³è®¿é®è¿äºå
å®¹ãæ¤å¤ï¼æç´¢ç¬è«å¯è½ä¸ä¼ç´¢å¼æ°æ®å±æ§çå¼ãé常æ
åµä¸ï¼å¦æåªæç®æ¾ç¤ºæ°æ®å±æ§ï¼å¯ä»¥ç´æ¥æä½ textContent
ã
SVGElement.dataset
å data-*
ãRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4