繁体   English   中英

如何将Javascript变量值导入CSS?

[英]How to get Javascript variable value into CSS?

如何将time变量的内容显示为CSS中的content属性?

JavaScript的:

function clock(){
    var d = new Date();
    var hour = d.getHours();
    var min = d.getMinutes();
    var time = hour + ":" + min;
}

CSS:

.screen{
    position: absolute;
    height: 75%;
    width: 75%;
    background: #98E8EE;
    top: 11.5%;
    left: 12.5%;
}

.screen::after{
    color: #F9F5F4;
    font-size: 40px;
    content: ;
    font-family: Arial;
    margin-left: 36.5px;
    top: 20px;
    position: relative
}

我不确定这是实现您想要做的事情的最佳方式,因为您还可以使用容器元素并直接更改其内容:

 const screenContentElement = document.getElementById('screen__content'); function pad(value) { const str = value + ''; return str.length === 2 ? str : '0' + str; } function clock(){ var d = new Date(); return pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds()); } setInterval(() => { screenContentElement.innerText = clock(); }, 1000); 
 #screen { font-family: Arial, sans-serif; position: relative; height: 100%; width: 100%; background: #98E8EE; text-align: center; padding: 2rem 0; } #screen__content { color: #F9F5F4; font-size: 40px; } 
 <div id="screen" class="screen"> <span id="screen__content"></span> </div> 

但是,关于您提供的代码,要动态更改CSS伪元素中的content属性的值,您可以将attr() CSS函数data-*属性一起使用:

 const screenElement = document.getElementById('screen'); function pad(value) { const str = value + ''; return str.length === 2 ? str : '0' + str; } function clock(){ var d = new Date(); return pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds()); } setInterval(() => { screenElement.dataset.time = clock(); }, 1000); 
 #screen { font-family: Arial, sans-serif; position: relative; height: 100%; width: 100%; background: #98E8EE; text-align: center; padding: 2rem 0; } #screen::before { color: #F9F5F4; font-size: 40px; content: attr(data-time); } 
 <div id="screen"></div> 

您可以使用CSS-Variables。

我可以使用: http //caniuse.com/css-variables/embed

文档: https //developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables

 const updateTime = () => { var d = new Date(); var hour = d.getHours(); var min = d.getMinutes(); var second = d.getSeconds(); var time = `${hour}:${min}:${second}`; // set CSS variable document.documentElement.style.setProperty(`--text`, `'${time}'`); } // initial call updateTime(); // interval to update time setInterval(updateTime, 1000); 
 :root { --text: '----'; } .container { position: absolute; height: 75%; width: 75%; background: #98E8EE; top: 11.5%; left: 12.5%; } .container::after { content: var(--text); color: #F9F5F4; font-size: 40px; content: ; font-family: Arial; margin-left: 36.5px; top: 20px; position: relative } 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div class="container"></div> </body> </html> 

你无法从css访问javascript变量,但是你可以从javascript设置css样式,看看JavaScript DOM CSS教程

或者你可以使用css预处理器来看看更少scss

您可以使用jquery将内容添加到元素中

如果你想在某些css属性中使用time值,那么你可以使用javascript / jquery简单地做到这一点:

$("#SomeId or .SomeCLass").css("PropertyName",time);

您可以使用javascript更改CSS值,而不是向CSS添加javascript值(不可能)。

例如,您可以使用jQuery库并根据值在html或CSS中进行更改。

不知道你想要什么,但如果你想要在你的页面上显示时间值,使用你的css格式化,也许这个?

document.write( '<p class="screen">' + time + '</p> );

或这个?

var timeDiv = document.createElement('div'); timeDiv.classList.add('screen'); document.body.appendChild(timeDiv);

只是猜测。 通常CSS定义事物的格式,所以我不确定你在问什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM