【发布时间】:2014-01-22 12:08:10
【问题描述】:
我正在开发一个 firefox 插件,并且严重依赖于 javascript 的一些动态更改。有一些 UI 元素(hbox/descriptions)使用 CSS 类进行样式设置。现在我希望从 javascript 更改 CSS 类定义,而不必使用元素 ID。有可能吗?
以前也有人问过类似的问题,但其中大多数是使用 php 来生成基于 CSS 或 jquery 的更改。 这是我的场景的示例: 我的 XUL:
<box id="firefox-addon-box">
<description id="description-1" class="description-text"> Some description </description>
<description id="description-2" class="description-text"> Some description </description>
</box>
我的 CSS:
.description-text {
font-size: 15px;
color: #fff;
}
所以我希望将 description-text 类中的字体大小更改为动态 20px。
现在我知道我们可以使用change the style using individual id 和getElementById() 并更改样式。但是在这里我希望更改一个类(这对很多元素都很重要),而不是处理单个 id。
我也知道we can point to another class definition by setAttribute() 并更改'class' - 这将再次需要处理个人ID。实际上,我有很多 UI 元素(都指向一个 CSS 类),并且在一个 CSS 类中更改了许多值。所以我的问题是,有没有办法直接从 javascript 更改 CSS 类定义,而无需处理元素 id?
感谢您的帮助。
【问题讨论】:
-
见my answer here:document.styleSheets 是关键。
标签: javascript css firefox stylesheet xul