First CSS variable
2021/11/09
by wllai2001
HTML
<div class='body'>
<div class='container'>
<!-- 參考網址:https://hospodarets.com/css_properties_in_depth-->
<div class='item' ID='left'>
點我設定100px
</div>
<div class='item' ID='right'>
點我設定150px
</div>
</div>
</div>
CSS
/*共用變數放這*/
:root{
--s:100px;
--border-color-setting:red;
}
.item{
/* --border-color-setting:green;*/
width:var(--s);
height:var(--s);
border:1px solid var(--border-color-setting);
display:inline-block;
/*var中可與字串混用,但變數一定要在最前面,且後面要用逗點隔開後續字串*/
margin:var(--s, 0 0);
/*如果前方有值可以這樣使用*/
/*margin:0 var(--s, 0 0);*/
/*或是乾脆不要混用*/
margin:0 var(--s) 0 0;
text-align:center;
padding:5px 0 0 0;
}
JavaScript
//可用JS取得CSS的變數,並進行調整
const rootStyles = getComputedStyle(document.documentElement);
//const varValue = rootStyles.getPropertyValue('--s').trim();
document.getElementById('left').addEventListener('click',
function(){
document.documentElement.style.setProperty('--s', '100px');
console.log(rootStyles.getPropertyValue('--s'));
},
false
);
document.getElementById('right').addEventListener('click',
function(){
document.documentElement.style.setProperty('--s', '150px')
console.log(rootStyles.getPropertyValue('--s'));
},
false
);
//const varValue = rootStyles.getPropertyValue('--s');