Comment puis-je afficher le contenu de la variable time
en tant que propriété content
dans mon CSS?
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
}
Je ne suis pas sûr que ce soit le meilleur moyen de réaliser ce que vous voulez faire, car vous pouvez également utiliser un élément conteneur et en modifier directement le contenu:
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>
Cependant, en ce qui concerne le code que vous avez fourni, pour modifier dynamiquement la valeur d'un content
propriété dans un pseudo-élément CSS
, vous pouvez utiliser la fonction CSS attr()
avec un attribut 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>
Vous pouvez utiliser des variables CSS.
Puis-je utiliser: http://caniuse.com/css-variables/embed
Docs: 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>
Vous ne savez pas trop ce que vous allez faire, mais si vous voulez que la valeur du temps apparaisse sur votre page, formatée avec votre css, peut-être ceci?
document.write( '<p class="screen">' + time + '</p> );
Ou ca?
var timeDiv = document.createElement('div');
timeDiv.classList.add('screen');
document.body.appendChild(timeDiv);
Juste deviner. Habituellement, CSS définit la façon dont les choses sont formatées, donc je ne suis pas sûr de ce que vous demandez.
Vous ne pouvez pas accéder aux variables javascript à partir de css, mais vous pouvez définir le style css à partir de javascript. Jetez un oeil sur Tutoriel JavaScript DOM CSS .
Sinon, vous pouvez utiliser les pré-processeurs css pour jeter un oeil sur less , scss
Vous pouvez utiliser jQuery pour ajouter le contenu à votre élément
Si vous voulez utiliser la valeur time de certaines propriétés css, vous pouvez simplement le faire en utilisant javascript/jquery:
$("#SomeId or .SomeCLass").css("PropertyName",time);
Au lieu d'ajouter une valeur javascript à votre CSS (impossible), vous pouvez modifier votre valeur CSS avec javascript.
Par exemple, vous pouvez utiliser la bibliothèque jQuery et apporter des modifications à votre code HTML ou CSS, en fonction de la valeur.