HTMLElement: style ããããã£
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
style 㯠HTMLElement ã®èªã¿åãå°ç¨ããããã£ã§ãè¦ç´ ã®ã¤ã³ã©ã¤ã³ style ããã©ã¤ã㪠CSSStyleProperties ãªãã¸ã§ã¯ãã®å½¢ã§è¿ãã¾ãã
ãã®ãªãã¸ã§ã¯ãã使ç¨ããã¨ãè¦ç´ ã®ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ãåå¾ããã³è¨å®ãããã¨ãã§ãã¾ãã
å¤
åç㪠CSSStyleProperties ãªãã¸ã§ã¯ãã§ãã
ã¡ã¢:
以åã®ãã¼ã¸ã§ã³ã®ä»æ§æ¸ã§ã¯ãCSSStyleDeclarationï¼CSSStyleProperties ã¯ããããæ´¾çãã¦ãã¾ãï¼ãè¿ããã¦ãã¾ããã
ãã©ã¦ã¶ã¼ã®å¯¾å¿ç¶æ³ã«ã¤ãã¦ã¯ããã©ã¦ã¶ã¼ã®äºææ§ã®è¡¨ãã覧ãã ããã
style ããããã£èªä½ã¯ãCSSStyleProperties ãªãã¸ã§ã¯ããç½®ãæãããã¨ãã§ããªãã¨ããæå³ã§èªã¿åãå°ç¨ã§ãããstyle ããããã£ã«ç´æ¥å¤ã代å
¥ãããã¨ã¯å¯è½ã§ããããã¯ããã® cssText ããããã£ã«å¤ã代å
¥ãããã¨ã¨åçã§ããåæã«ãsetProperty() ããã³ removeProperty() ã¡ã½ããã使ç¨ãã¦ãCSSStyleProperties ãªãã¸ã§ã¯ãã夿´ãããã¨ãã§ãã¾ãã
解説
è¦ç´ ã® style 屿§ã§è¨å®ãããã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ã®å¤ã¯ãè¿ããã CSSStyleProperties ãªãã¸ã§ã¯ãã®å¯¾å¿ããããããã£ã«åæ ããã¾ãã
ã¡ã¢:
CSSStyleProperties ã«ã¯ããã©ã¦ã¶ã¼ã対å¿ãã¦ãããã¹ã¦ã® CSS ããããã£ã«ã¤ãã¦ãããã·ã¥ä»ãã®ååã¨ãããã«å¯¾å¿ãããã£ã¡ã«ã±ã¼ã¹å½¢å¼ã®ååãæã¤ããããã£ãç¨æããã¦ãã¾ãï¼ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ãæã¤ããããã£ã ãã§ã¯ããã¾ããï¼ã
対å¿ããã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ãæããªãããããã£ã¯ã"" ã«è¨å®ããã¾ãã
è¦ç´ ã®ä¸æ¬æå®ããããã£ã¯ã対å¿ããå奿å®ããããã£ã«å±éããã¾ãã
ä¾ãã°ãã¹ã¿ã¤ã«ã "border-top: 1px solid black" ã§ããè¦ç´ ã¯ãè¿ããããªãã¸ã§ã¯ãå
ã§ãååã border-top ã®ããããã£ããã³ borderTopãããã³å¯¾å¿ããå奿å®ãããã㣠border-top-color ããã³ borderTopColorã border-top-style ããã³ borderTopStyleãborder-top-width ããã³ borderTopWidth ã¨ãã¦è¡¨ããã¾ãã
ä»ã®ã¹ã¿ã¤ã«å¤ã夿´ããã«è¦ç´ ã«ç¹å®ã®ã¹ã¿ã¤ã«ã追å ããã«ã¯ãã§ããã°ãCSSStyleProperties ãªãã¸ã§ã¯ãã«å¯¾ãã¦åã
ã®ããããã£ãè¨å®ããæ¹ãããã§ãããã
ä¾ãã°ãelement.style.backgroundColor = "red" ã¨è¨è¿°ã§ãã¾ãã
ã¹ã¿ã¤ã«å®£è¨ã¯ãnull ã¾ãã¯ç©ºæååï¼ä¾ï¼element.style.color = nullï¼ã«è¨å®ãããã¨ã§ãªã»ããããã¾ãã
style ããããã£ã¯ãCSS ã«ã¹ã±ã¼ãã«ããã¦ãstyle 屿§ãéãã¦è¨å®ãããã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«å®£è¨ã¨åãåªå
é ä½ãæã¡ã¾ãã
ä¾
>åºæ¬çãªä½¿ãæ¹
ãã®ã³ã¼ãä¾ã¯ãè¦ç´ ã®ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ãèªã¿åãæ¹æ³ã示ãã¦ãã¾ãã
ããããã®å ´åãgetPropertyValue() ã使ç¨ãã¦ããã·ã¥ã§åºåãããååä»ãã®ã¹ã¿ã¤ã«ããããã£ãèªã¿åãããããæ¼ç®åã使ç¨ãã¦ãã£ã¡ã«ã±ã¼ã¹ã®ããããã£ãåå¾ãã¦ãã¾ãã
HTML
ã¾ãã<div> è¦ç´ ã¨ããã®ä¸ã«å«ã¾ããè¦ç´ ãå®ç¾©ããããããã«ä¸æ¬æå®ã¨å奿å®ã®ä¸¡æ¹ã使ç¨ãã¦ç°ãªãã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ãæå®ãã¾ãã
<div style="font-weight: bold;">
<div style="border-top: 1px solid blue; color: red;" id="elt">div ã®ä¾</div>
<pre id="log"></pre>
</div>
JavaScript
次ã®ã³ã¼ãã¯ãå é¨è¦ç´ ãåå¾ãããã®ã¹ã¿ã¤ã«ãèªã¿åããããã·ã¥ååä»ãããã³ãã£ã¡ã«ã±ã¼ã¹åä»ãã® CSS ã¹ã¿ã¤ã«ããããã£ããã°åºåãã¾ãã
const element = document.getElementById("elt");
const elementStyle = element.style;
// å奿å®ã¹ã¿ã¤ã«
log(`"border-top" = '${elementStyle.getPropertyValue("border-top")}'`);
log(`"borderTop" = '${elementStyle.borderTop}'`);
// å±éããå奿å®ã¹ã¿ã¤ã«
log(
`"border-top-width" = '${elementStyle.getPropertyValue("border-top-width")}'`,
);
log(`"borderTopWidth" = '${elementStyle.borderTopWidth}'`);
log(
`"border-top-style" = '${elementStyle.getPropertyValue("border-top-style")}'`,
);
log(`"borderTopStyle" = '${elementStyle.borderTopStyle}'`);
log(
`"border-top-color" = '${elementStyle.getPropertyValue("border-top-color")}'`,
);
log(`"borderTopColor" = '${elementStyle.borderTopColor}'`);
// å
ã®ä¸æ¬æå®ã¹ã¿ã¤ã«
log(`"color" = '${elementStyle.getPropertyValue("color")}'`);
log(`"color" = '${elementStyle.color}'`);
// 親ã§å®ç¾©
log(`"font-weight" = '${elementStyle.getPropertyValue("font-weight")}'`);
log(`"fontWeight" = '${elementStyle.fontWeight}'`);
çµæ
çµæã¯ä¸è¨ã«ç¤ºãã¾ãã
ããããã®å ´åã§ãããã·ã¥ä»ãããã³ãã£ã¡ã«ã±ã¼ã¹ã®ååä»ãããããã£ã使ç¨ãã¦èªã¿è¾¼ã¾ããã¹ã¿ã¤ã«ãåãã§ãããã¨ããããã¾ãã
åæã«ãè¦ç´ ã® style 屿§ã«å¯¾å¿ãã border-top ããããã£ãåå¨ãããã®åé¨åã«ã¤ãã¦å奿å®ããããã£ãå®ç¾©ããã¦ãããã¨ã確èªã§ãã¾ãï¼border-top-colorã border-top-styleãããã³ border-top-width ãå®ç¾©ããã¦ãããã¨ããããã¾ãï¼ã
ãªããfont-weight 㯠CSSStyleProperties ä¸ã§å®ç¾©ããã¦ãã¾ãï¼ä»ã®ãã¹ã¦ã® CSS ããããã£ãåæ§ã§ãããããã§ã¯ããããè¨è¼ãã¦ãã¾ããï¼ã
ãã ããããã¯ãã¹ããããè¦ç´ ã«å¯¾ããã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ã§ã¯ãªãããããã®å¤ã¯ç©ºæååï¼""ï¼ã«è¨å®ããã¾ãã
ã¹ã¿ã¤ã«æ å ±ã®åæ
ãã®ä¾ã§ã¯ãCSSStyleProperties ã®ããã·ã¥åä»ãã®ããããã£ãåæããæ¹æ³ã示ãã¦ãã¾ãã
HTML
ã¾ãã<div> è¦ç´ ã¨ããã®ä¸ã«å
¥ãåã«ãªã£ãè¦ç´ ãå®ç¾©ããããããã«ä¸æ¬æå®ã¨å奿å®ã®ä¸¡æ¹ã®ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ãæå®ãã¾ãã
ããã¯ååã®ä¾ã¨åã HTML ã§ãã
<div style="font-weight: bold;">
<div style="border-top: 1px solid blue; color: red;" id="elt">div ã®ä¾</div>
<pre id="log"></pre>
</div>
JavaScript
以ä¸ã®ã³ã¼ãã¯ãCSSStyleProperties ã®å復å¯è½ãªããããã£ãå復å¦çãããã®çµæããã°åºåãã¾ãã
const element = document.getElementById("elt");
const elementStyle = element.style;
// ãã¹ã¦ã®è¦ç´ ã®ã¹ã¿ã¤ã«ãã `for...in` ã使ç¨ãã¦èµ°æ»
for (const prop in elementStyle) {
// ããããã£ã CSSStyleDeclaration ã¤ã³ã¹ã¿ã³ã¹ã«å±ãã¦ããã確èªãã
// ã¾ããããããã£ãï¼ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«ã示ãï¼æ°å¤ã¤ã³ããã¯ã¹ã§ãããã¨ã確èªãã
if (
Object.hasOwn(elementStyle, prop) &&
!Number.isNaN(Number.parseInt(prop, 10))
) {
log(
`${
elementStyle[prop]
} = '${elementStyle.getPropertyValue(elementStyle[prop])}`,
);
}
}
çµæ
çµæãä¸ã«ç¤ºãã¾ãã ãªããè¦ç´ ã®åå¥æå® CSS ããããã£ã®ã¿ãåæå¤ã¨ãªã£ã¦ããã®ã§ï¼ã¤ã³ã©ã¤ã³ã®ä¸æ¬æå®ããããã£ã¯åæå¤ã§ã¯ããã¾ããï¼ããã®ç¹ã«ã注æãã ããã
å¢çã¹ã¿ã¤ã«ãæ´æ°
<div id="box"></div>
<button id="btn1">å¢çã 20px å¹
ã«ãã</button>
<button id="btn2">å¢çã 5px å¹
ã«ãã</button>
#box {
border: 5px solid green;
width: 100px;
height: 100px;
}
function setBorderWidth(width) {
document.getElementById("box").style.borderWidth = `${width}px`;
}
document.getElementById("btn1").addEventListener("click", () => {
setBorderWidth(20);
});
document.getElementById("btn2").addEventListener("click", () => {
setBorderWidth(5);
});
ã¹ã¿ã¤ã«ã®æä½
ãã®ä¾ã§ã¯ãHTML ã®æ®µè½è¦ç´ ã®åºæ¬çãªã¹ã¿ã¤ã«ããããã£ã«ããã®è¦ç´ ã® style ãªãã¸ã§ã¯ãããã³ãã®ãªãã¸ã§ã¯ãã® CSS ã¹ã¿ã¤ã«ããããã£ã使ç¨ãã¦ã¢ã¯ã»ã¹ãã¦ãã¾ããããã㯠DOM ããåå¾ã»è¨å®ãå¯è½ã§ãããã®å ´åãåã
ã®ã¹ã¿ã¤ã«ãç´æ¥æä½ãã¦ãã¾ããã¾ããstyleSheets ã¨ãã®ã«ã¼ã«ã使ç¨ãã¦ãææ¸å
¨ä½ã®ã¹ã¿ã¤ã«ã夿´ãããã¨ãã§ãã¾ãã
<p id="pid">ããããã®ããã¹ã</p>
<p><button type="button">ããã¹ãã夿´</button></p>
function changeText() {
const p = document.getElementById("pid");
p.style.color = "blue";
p.style.fontSize = "18pt";
}
document.querySelector("button").addEventListener("click", () => {
changeText();
});
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Object Model (CSSOM) > # dom-elementcssinlinestyle-style > |