【问题标题】:Inner DIV CSS style updation with Javascript使用 Javascript 更新内部 DIV CSS 样式
【发布时间】:2018-05-02 10:35:03
【问题描述】:

对于以下样式,如何使用javascript更改背景颜色的值。

i) 内部样式表和/或 ii) 外部样式表

我正在使用https://github.com/dynamicdriverepo/carddeckslideshow的卡片组幻灯片放映

div.stackcontainer > div.inner{ 背景:#D7F9FF; }

【问题讨论】:

标签: javascript css background-color division


【解决方案1】:

一种方法是使用 CSS 变量(仅在最新浏览器中可用)

div.stackcontainer > div.inner{ background: var(--inner-bg-color, #D7F9FF); }

然后您可以使用 JS 将 --inner-bg-color 的值设置为 div.inner 或以上的任何位置。

document.querySelector('div.stackcontainer').style.setProperty('--inner-bg-color', 'red')

但是如果你不能改变他们的 CSS 那么你需要调整那个元素的样式:

var el = document.querySelector('div.stackcontainer > div.inner');
if (el) {
  el.style.backgroundColor = '#FF0000';
}

请注意,您现在正在搞乱决定使用什么 CSS 的特异性值。而且,如果要重置为原始值,则需要从该元素中删除 style 值。

var el = document.querySelector('div.stackcontainer > div.inner');
if (el) {
  el.style.backgroundColor = '';
}

【讨论】:

  • 它成功了,我可以更新背景颜色,但是只有最上面的卡片的背景颜色在改变堆栈的其余部分继续使用默认的背景颜色。
  • 是否可以更改堆栈中所有卡片的背景颜色
  • 当然。您所需要的只是一个选择器,它将为您提供代表卡片的所有元素,然后在所有元素上设置backgroundColor。类似:var els = document.querySelectorAll('some very specific selector for the cards'); els.forEach((el) => { el.style.backgroundColor = '#00DD00'; }) 注意使用querySelectorAll 而不是querySelector
猜你喜欢
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多