HTML ã¯ãç¹å®ã®è¦ç´ ã«é¢é£ä»ããå¿
è¦ãããããå®ç¾©æ¸ã¿ã®æå³ãæã¤å¿
è¦ã®ãªããã¼ã¿ã«å¯¾ããæ¡å¼µæ§ã念é ã«ç½®ãã¦è¨è¨ããã¦ãã¾ãã data-*
屿§ã«ãããæ¨æºå¤ã®å±æ§ã DOM ã®è¿½å ããããã£ãªã©ã®ç¹æ®ãªæ¹æ³ã«é ¼ããã«ãæ¨æºçãªæå³ã®ãã HTML è¦ç´ ã«è¿½å æ
å ±ãæ ¼ç´ãããã¨ãã§ãã¾ãã
æ§æã¯åç´ã§ããããããè¦ç´ ä¸ã§ãååã data-
ã§å§ã¾ããããã屿§ããã¼ã¿å±æ§ã§ããä¾ãã°ãè¨äº (article) ããããè¦è¦è¡¨ç¾ãè¡ããªãè¿½å æ
å ±ãæ ¼ç´ãããã¨ãã¾ãã data
屿§ã使ç¨ããã¨ããã ãã§ãã
<main>
<article
id="electric-cars"
data-columns="3"
data-index-number="12314"
data-parent="cars">
<!-- Electric car content -->
</article>
<article
id="solar-cars"
data-columns="3"
data-index-number="12315"
data-parent="cars">
<!-- Solar car content -->
</article>
<article
id="flying-cars"
data-columns="4"
data-index-number="12316"
data-parent="cars">
<!-- Flying car content -->
</article>
</main>
JavaScript ããã®ã¢ã¯ã»ã¹
JavaScript ã§ãããã®å±æ§ã®å¤ãèªã¿åºããã¨ããã¨ã¦ãç°¡åã§ãã getAttribute()
ã§å®å
¨ãª HTML ã§ã®ååã使ç¨ãã¦èªããã¨ãã§ãã¾ããããã£ã¨ç°¡åãªæ¹æ³ãæ¨æºã§å®ç¾©ããã¦ãã¾ãã DOMStringMap
ã®å½¢ã§ã dataset
ããããã£ãéãã¦èªã¿åºããã¨ãã§ãã¾ãã
dataset
ãªãã¸ã§ã¯ããéã㦠data
屿§ãåå¾ããã«ã¯ã屿§åã® 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"
ã«å¤ããã¾ãã
ã¾ãã data 屿§ã»ã¬ã¯ã¿ã¼ã¨ã¨ãã« document.querySelector()
ã¾ã㯠document.querySelectorAll()
ã使ç¨ãã¦ãä¸è´ãã 1 ã¤ã®è¦ç´ ã¾ãã¯ãã¹ã¦ã®è¦ç´ ãè¦ã¤ãããã¨ãã§ãã¾ãã
// 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 ããã®ã¢ã¯ã»ã¹
ãã¼ã¿å±æ§ã¯ãã¬ã¼ã³ãª HTML 屿§ã§ãããããCSS ãããã¢ã¯ã»ã¹ã§ãããã¨ã«æ³¨æãã¦ãã ããã ä¾ãã°ãè¨äºã®è¦ªãã¼ã¿ã表示ããã«ã¯ã次ã®ããã« CSS ã§çæã³ã³ãã³ãã«ãã㦠attr()
颿°ã使ç¨ãã¦å®ç¾ã§ãã¾ãã
article::before {
content: attr(data-parent);
}
CSS ã®å±æ§ã»ã¬ã¯ã¿ã¼ã使ç¨ãã¦ã次ã®ããã«ãã¼ã¿ã«å¿ãã¦ã¹ã¿ã¤ã«ã夿´ãããã¨ãã§ãã¾ãã
article[data-columns="3"] {
width: 400px;
}
article[data-columns="4"] {
width: 600px;
}
ãã® JS Bin ã®ä¾ã§ã¯ãããããã¹ã¦ãä¸ç·ã«æ©è½ãã¦ãããã¨ããããã¾ãã
ãã¼ã¿å±æ§ãä¿åãã¦ãã²ã¼ã ã®ã¹ã³ã¢ãªã©ãçµ¶ããå¤åããæ å ±ãå«ãããã¨ãã§ãã¾ãã ããã§ CSS ã»ã¬ã¯ã¿ã¼ã¨ JavaScript ã¢ã¯ã»ã¹ã使ç¨ããã¨ãç¬èªã®è¡¨ç¤ºã«ã¼ãã³ã使ãããã¨ãªããæ°ã®å©ããã¨ãã§ã¯ãã使ã§ãã¾ãã çæããã³ã³ãã³ã㨠CSS ãã©ã³ã¸ã·ã§ã³ï¼transitionãé·ç§»ï¼ã使ç¨ããä¾ã«ã¤ãã¦ã¯ããã®ã¹ã¯ãªã¼ã³ãã£ã¹ããåç §ãã¦ãã ããï¼JS Bin ã®ä¾ï¼ã
ãã¼ã¿å¤ã¯æååã§ãã ã¹ã¿ã¤ãªã³ã°ãæå¹ã«ããã«ã¯ãã»ã¬ã¯ã¿ã¼ã§æ°å¤ãå¼ç¨ç¬¦ã§å²ãå¿ è¦ãããã¾ãã
å顿¯æ´æè¡ãã¢ã¯ã»ã¹ã§ããªãå¯è½æ§ãããããããã¼ã¿å±æ§ã«è¡¨ç¤ºããã³ã¢ã¯ã»ã¹å¯è½ãªã³ã³ãã³ããä¿åããªãã§ãã ããã ããã«ãæ¤ç´¢ã¯ãã¼ã©ã¼ã¯ãã¼ã¿å±æ§ã®å¤ã«ã¤ã³ããã¯ã¹ãä»ããªãå ´åãããã¾ãã
é¢é£æ å ±HTMLElement.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