var()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017å¹´4æ.
var() 㯠CSS ã®é¢æ°ã§ãä»ã®ããããã£ã®å¤ã®ä¸é¨ã«ä»£ãã£ã¦ã«ã¹ã¿ã ãããã㣠(ãCSS 夿°ãã¨å¼ã°ãããã¨ãããã¾ã) ã®å¤ãæ¿å
¥ã§ãã¾ãã
試ãã¦ã¿ã¾ããã
border-color: var(--color-a);
border-color: var(--color-b);
border-color: var(--color-c);
<section class="default-example" id="default-example">
<div id="example-element">
:root ã« 3 ã¤ã®è²ãªãã·ã§ã³ãè¨å®ããã¦ãã¾ãããããã使ç¨ãã¦å¢çç·ã®è²ã夿´ãã¦ãã ããã
</div>
</section>
:root {
--color-a: pink;
--color-b: green;
--color-c: rebeccapurple;
}
#example-element {
border: 10px solid black;
padding: 10px;
}
var() 颿°ã¯ãããããã£åãã»ã¬ã¯ã¿ã¼ãªã©ãããããã£å¤ä»¥å¤ã§ã¯ä½¿ç¨ã§ãã¾ãããï¼ä½¿ç¨ãã¦ãã¾ãã¨ãç¡å¹ãªæ§æãçæããããããããã¯ãã®å¤æ°ã«æ¥ç¶ãã¦ããªãå¤ãçæããã¦ãã¾ãã¾ããï¼
æ§æ
/* åºæ¬çãªä½¿ç¨ */
var(--custom-prop);
/* 代æ¿å¤ã¤ã */
var(--custom-prop,); /* 代æ¿å¤ã¯ç©ºã®å¤ */
var(--custom-prop, initial); /* 代æ¿å¤ã¯ããããã£ã®åæå¤ */
var(--custom-prop, red);
var(--custom-prop, var(--default-value));
var(--custom-prop, var(--default-value, red));
颿°ã®æåã®å¼æ°ã¯ãç½®æãããã«ã¹ã¿ã ããããã£ã®ååã§ãã颿°ã®ãªãã·ã§ã³ã® 2 çªç®ã®å¼æ°ã¯ã代æ¿å¤ã¨ãã¦æ©è½ãã¾ããæåã®å¼æ°ã§åç §ãããã«ã¹ã¿ã ããããã£ãå®ç¾©ããã¦ããªãã£ãããCSS å ¨ä½ã®ãã¼ã¯ã¼ãã«çããã£ããããå ´åã颿°ã¯ 2 ã¤ç®ã®å¤ã使ç¨ãã¾ãã
代æ¿ã®æ§æã¯ãã«ã¹ã¿ã ããããã£ã®æ§æã¨åæ§ã«ã«ã³ãã使ç¨ã§ãã¾ãããã¨ãã° var(--foo, red, blue) ã§ã¯ã red, blue ã代æ¿ã¨ãã¦å®ç¾©ãã¾ããã¤ã¾ããæåã®ã«ã³ããã颿°ã®æå¾ã«ããã¦ã®ãã¹ã¦ãã代æ¿å¤ã¨è¦ãªããã¾ãã
å¤
<custom-property-name>-
ã«ã¹ã¿ã ããããã£ã®ååã§ã 2 ã¤ã®ãã¤ãã³ã§å§ã¾ãèå¥åã§è¡¨ããã¾ããã«ã¹ã¿ã ããããã£ã¯ã使è ã¨ã¦ã¼ã¶ã¼ã ãã使ç¨ã§ãã¾ããCSS ã¯ããã«æç¤ºããã¦ãããã®ãè¶ ãã¦æå³ãä¸ãã¾ããã
<declaration-value>-
ã«ã¹ã¿ã ããããã£ã®ä»£æ¿å¤ã§ãã«ã¹ã¿ã ããããã£ãå®ç¾©ããã¦ããªãã£ãããCSS å ¨ä½ã®ãã¼ã¯ã¼ãã«çããã£ããããå ´åã«ä½¿ç¨ããã¾ãããã®å¤ã«ã¯ãæ¹è¡ãä¸çå¼ã®éãæ¬å¼§ãã¤ã¾ã
),],}, ãããã¬ãã«ã®ã»ãã³ãã³ãæå符ãªã©ã®ç¹å¥ãªæå³ãæã¤æåãé¤ãä»»æã®æåãå«ãããã¨ãã§ãã¾ãã代æ¿å¤ãvar()æ§æã使ç¨ããã«ã¹ã¿ã ããããã£ã¨ãã¦å®ç¾©ã§ãã¾ãã代æ¿å¤ãçç¥ããããã¤ã«ã¹ã¿ã ããããã£ãå®ç¾©ããã¦ããªãå ´åãvar()颿°ã¯ç¡å¹ãªå¤ã¨ãã¦è§£æ±ºããã¾ããã¡ã¢:
var(--a,)ã¯æå¹ã§ãããç¬èªã®ããããã£--aãå®ç¾©ããã¦ããªãã£ãããCSS å ¨ä½ã®ãã¼ã¯ã¼ãã«çããã£ããããå ´åã¯ãvar()ãç¡ã«ç½®ãæãããã¾ãã
形弿æ³
<var()> =
var( <custom-property-name> , <declaration-value>? )
ä¾
>:root ã«è¨å®ããã«ã¹ã¿ã ããããã£ã®ä½¿ç¨
CSS
:root {
--main-bg-color: pink;
}
body {
background-color: var(--main-bg-color);
}
çµæ
ããã§ã¯ãbackground-color ããããã£ã®å¤ãã«ã¹ã¿ã ãããã㣠--main-bg-color ãéãã¦è¨å®ããã¾ãããããã£ã¦ãHTML æ¬ä½ã®èæ¯è²ã¯ãã³ã¯ã«ãªãã¾ãã
è¨å®åã«ã«ã¹ã¿ã ããããã£ã使ç¨
CSS
body {
background-color: var(--main-bg-color);
}
:root {
--main-bg-color: pink;
}
çµæ
ãã®ä¾ã§ã¯ãã«ã¹ã¿ã ããããã£ã®è¨å®ãå¾ã«ãªã£ãã¨ãã¦ããHTML ã® body ã®èæ¯è²ã¯ãã³ã¯ã®ã¾ã¾ã«ãªãã¾ãã
ä»ã®ãã¡ã¤ã«ã§è¨å®ãããã«ã¹ã¿ã ããããã£ã®ä½¿ç¨
HTML
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="1.css" />
<link rel="stylesheet" href="2.css" />
</head>
<body></body>
</html>
CSS
/* 1.css */
body {
background-color: var(--main-bg-color);
}
/* 2.css */
:root {
--main-bg-color: pink;
}
çµæ
ã«ã¹ã¿ã ããããã£ãå¥ã®ãã¡ã¤ã«ã§å®£è¨ããã¦ãã¦ããHTML ã® body ã®èæ¯è²ã¯ãã³ã¯ã«ãªãã¾ãã
ããããã£ãè¨å®ããã¦ããªãã£ãå ´åã«ä½¿ç¨ãã代æ¿å¤ä»ãã®ã«ã¹ã¿ã ããããã£
HTML
<div class="component">
<h1 class="header">è¦åºã</h1>
<p class="text">ããã¹ã</p>
</div>
CSS
/* component ã®ã¹ã¿ã¤ã«ã§ã¯ */
.component .header {
/* header-color ãè¨å®ããã¦ããªããã°ã代æ¿å¤ã§ããéã®ã¾ã¾ã«ãªã */
color: var(--header-color, blue);
}
.component .text {
color: var(--text-color, black);
}
/* ããè¦æ¨¡ã®å¤§ããªã¢ããªã±ã¼ã·ã§ã³ã®ã¹ã¿ã¤ã«ã§ã¯ */
.component {
--text-color: #008800;
}
çµæ
--header-color ãè¨å®ããã¦ããªããããããã¹ããè¦åºããã¯ä»£æ¿å¤ã§ããéè²ã«ãªãã¾ãã
代æ¿å¤ã¨ãã¦ã«ã¹ã¿ã ããããã£ã使ç¨
CSS
:root {
--backup-bg-color: teal;
}
body {
background-color: var(--main-bg-color, var(--backup-bg-color, white));
}
çµæ
--main-bg-color ãè¨å®ããã¦ããªããããæ¬ä½ã® background-color 㯠--backup-bg-colorï¼ãã£ã¼ã«è²ï¼ã«ä»£æ¿ããã¾ãã
ç¡å¹ãªå¤
var() 颿°ã¯æ¬¡ã®å ´åã«ãç¡å¹ãªå¤ã«è§£æ±ºãããã¨ãããã¾ãã
- ã«ã¹ã¿ã ããããã£ãå®ç¾©ããã¦ãããã代æ¿å¤ãæå®ããã¦ããªãã
- ã«ã¹ã¿ã ããããã£ã¯å®ç¾©ããã¦ãããããã®å¤ã使ç¨ããã¦ããããããã£ã«å¯¾ãã¦ä¸æ£ãªå¤ã§ããã
ãã®å ´åãããããã£ã¯å¤ unset ãæã¤ãã®ã¨ãã¦æ±ããã¾ããããã¯ã夿°ãä»ã®æ§æã¨ã©ã¼ã®ããã«ãæ©æã«å¤±æããããã¨ãã§ããªãããã§ããã¤ã¾ããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããããããã£å¤ãç¡å¹ã§ããã¨èªèããæç¹ã§ã¯ãä»ã®ã«ã¹ã±ã¼ããããå¤ãæ¢ã«æãããã¦ããããã§ãã
ä¾ã示ãã¾ãã
HTML
<p class="p1">æªå®ç¾©ã®å¤æ°</p>
<p class="p2">䏿£ãªå¤æ°</p>
<p class="p3">䏿£ãªãªãã©ã«è²</p>
CSS
p {
color: red;
}
.p1 {
color: var(--invalid-color);
}
.p2 {
--invalid-color: 20px;
color: var(--invalid-color);
}
.p3 {
color: 20px;
}
çµæ
var() ã使ç¨ãã¦ããæ®µè½ã¯ããã©ã«ãã®é»ã«æ»ãã¾ããã䏿£ãªãªãã©ã«è²ãæå®ãããæ®µè½ã¯èµ¤ã®ã¾ã¾ã§ãããã¨ã«æ³¨æãã¦ãã ããããã㯠color: 20px 宣è¨ãåã«ç¡è¦ãããããã§ãã
仿§æ¸
| Specification |
|---|
| CSS Custom Properties for Cascading Variables Module Level 1> # using-variables> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
env(â¦)â ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã«ãã£ã¦å¶å¾¡ãããèªã¿åãå°ç¨ã®ç°å¢å¤æ°- CSS ã«ã¹ã¿ã ããããã£ï¼å¤æ°ï¼
@propertyã¢ããã«ã¼ã«- ã«ã¹ã±ã¼ã夿°ã®ããã® CSS ã«ã¹ã¿ã ããããã£ã¢ã¸ã¥ã¼ã«