如何在创建的div中重用网页的CSS类?

时间:2012-07-12 03:00:22

标签: javascript css greasemonkey

我想将网页的某种CSS风格重用于我添加的新Div元素。我正在使用Greasemonkey重新设计页面。

如何将bar1样式添加到myDiv

原创div:

<div id="bar1" class="bar1">

新Div:

var myDiv = document.createElement('div');

3 个答案:

答案 0 :(得分:0)

myDiv.className = 'bar1';

myDiv.className = document.getElementById ('bar1').className;

答案 1 :(得分:0)

听起来你的最终目标是制作像书签一样的东西。如果您只是想添加一个类,您可以随时在对象上设置“className”,因为“class”这个词是受保护的。

http://jsfiddle.net/scispear/tCzZM/

我还动态地投放了一些样式表(但是对于更现代的浏览器,旧的浏览器需要更多的工作)。

答案 2 :(得分:0)

由于CSS继承,复制类名是不够的,除非新元素是另一个的兄弟。即使这样,像nth-child这样的CSS3选择器也可能搞砸了。

您应该迭代所有相关的样式属性并复制它们的计算值,如下所示:

var stylesToCopy = ['color', 'background-color', ...];
var oldStyle = getComputedStyle(bar1);
for (var i = 0; i < stylesToCopy.length; i++) {
    myDiv.style[stylesToCopy[i]] = oldStyle[stylesToCopy[i]];
}