将引用的样式表动态添加到内联样式

时间:2011-08-24 06:28:57

标签: javascript jquery html css dynamic

方案

我创建了一个页面,客户端可以在其中构建自己的页面,日历,小部件,文章等。我创建了第二个动态构建器页面,用于构建自己的新闻稿。

问题

所有我的css都被引用了类,因为邮件非常有限我必须添加所有样式内联

问题

是否有一个脚本可以运行以通过类获取所有引用的样式,并将其添加到相关的元素/标签内联样式?

示例[简单]

<p class='txtBlack'>Hello World</p>

转换为

<p class='txtBlack' style='color:#000;'>Hello World</p>

希望这很清楚,可以理解。

3 个答案:

答案 0 :(得分:1)

这个答案解释了如何: Can I access the value of invalid/custom CSS properties from JavaScript?

CSSStyleDeclaration(https://developer.mozilla.org/en/DOM/CSSStyleDeclaration

div {
    width: 100px;
}

style:CSSStyleDeclaration对象包含cssText:

cssText: "width: 100px"

CSSStyleDeclaration规范:http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration

要使用类名获取所有元素:

jQuery("[class]")

答案 1 :(得分:1)

我会为每个元素使用element.currentStylewindow.getComputedStyle(),然后“手动”阅读我想要的内容,并覆盖我确信在邮件应用中不起作用的内容。

我在这里做了示例:http://jsfiddle.net/Vmc7L/

另一种方法是读取规则表单样式表,然后将它们应用于内联样式。但是,如果你有像.myClass:firstChild>.anotherClass这样的选择器怎么办? :D也许jquery可以提供帮助。

您需要的方法有:http://www.quirksmode.org/dom/w3c_css.html

答案 2 :(得分:0)

这是解决方案,您可以使用“getElementsByClassName”javascript函数来收集具有指定类名的元素。但请记住,这不适用于IE浏览器。所以对于IE你必须有自己的功能。希望这有助于你。