简体   繁体   English

用 Javascript 更改 Boostrap 卡 CSS

[英]Change Boostrap Card CSS with Javascript

The defeault style of the Bootstrap card on my website is light but I have javascript that turns my site theme dark during certain hours in the evening/early morning.我网站上 Bootstrap 卡的默认样式很轻,但我有 javascript 在晚上/清晨的某些时间使我的网站主题变暗。 I am trying to change the style of the Bootstrap card to dark.我正在尝试将 Bootstrap 卡的样式更改为深色。 I have linked the code below but it does not work as expected.我已经链接了下面的代码,但它没有按预期工作。

 let hour = new Date().getHours(); if(hour < 14 || hour > 20) { darkMode(); } function darkMode() { var element_body = document.body; element_body.classList.toggle("dark-mode-body"); var links = document.querySelector("a"); /* returns first anchor tag within the document */ links.classList.toggle("dark-mode-anchor"); var cards = document.getElementsByClassName("card bg-light"); for(var i = 0; i < cards.length; i++) { cards[i].classList.toggle("card bg-dark"); } }
 <div class="card bg-light"> <div class="card-body"> <h4 class="card-title">Card title</h4> <p class="card-text">Some example text. Some example text.</p> <a href="#" class="btn btn-light mr-0" role="button">Card link</a> </div> </div>

You should just add the bg-dark class.您应该只添加 bg-dark class。 You code is currently raising an error, as you cannot toggle multiple classes with classList.toggle .您的代码当前引发错误,因为您无法使用classList.toggle切换多个类。

Change改变

cards[i].classList.toggle("card bg-dark");

To

cards[i].classList.add("bg-dark");

To change each button within a card to have a dark style as well, you can use document.querySelectorAll and remove the btn-light class and add the btn-dark class.要将卡片中的每个按钮也更改为深色样式,您可以使用document.querySelectorAll并删除 btn-light class 并添加 btn-dark class。

var btns = document.querySelectorAll(".card a.btn");
btns.forEach(btn=>{
    btn.classList.remove("btn-light");
    btn.classList.add("btn-dark");
});

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

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