javascript - 定期更新 iFrame 中的 CSS

标签 javascript html css iframe

我的页面上有一个颜色选择器小部件。我正在尝试附加一个事件处理程序,它将采用选定的颜色并将 CSS 规则列表应用于我页面上的 iFrame。 iFrame 与我的页面位于同一域中,因此更新内联 css 不是问题。

问题是我需要在我的某些样式中使用伪类选择器(如 :hover 等),这无法内联完成。我可以制作一个样式元素并将其附加到我的 iFrame 的头部,但这意味着每次选择新颜色时都会添加一个新元素。每次选择颜色时,有什么方法可以“替换”样式元素吗?或者,对于我的问题是否有更简单的解决方案?

最佳答案

您可以为此使用 CSS 变量。

在您的 css 文件中将您的颜色定义为“:root”:

:root{
    --myColor: red;
    --mySecondColor:green;
}

然后像这样在您的元素中设置 colorProperties:

button{
    background-color: var(--myColor);
    padding:10px;
}
div{
    color: var(--mySecondColor);
    padding:10px;
}

现在在 JavaScript 中,您可以全局更改这些属性

document.documentElement.style.setProperty('--myColor','blue');
document.documentElement.style.setProperty('--mySecondColor','orange');

或者只在本地修改

document.querySelector('button').style.setProperty('--myColor','blue');

关于javascript - 定期更新 iFrame 中的 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751999/

相关文章:

javascript - 如何仅将音频从耳机的一侧引出?

javascript - 无法使用angular.js在输入字段内绑定(bind)数据

javascript - 动画({宽度: 'toggle' }) jumps if the element contains text?

javascript - 无法使用 jquery 获取 html5 数据属性

Android:strings.xml 中的 html

html - 我如何在背景中设置图像,我使用 CSS 将图像放在背景中,但遗憾的是上部曲线显示正确但图像底部显示平坦

javascript - 拉动刷新数据重复

jquery - 我如何使用 Modernizr 使 HTML5 模板适应 IE5、IE6 等?

javascript - 响应式地将文本输入内容对齐

javascript - 如何使用 css 或 JS 锁定手机的纵向和平板电脑的横向?