(兼容)复制一个dom的所有样式,到另一个dom

如果不要求支持IE, 那么只要一行。

dom.style.cssText = window.getComputedStyle(srcDom, null).cssText;

如果要兼容各个浏览器,那么要原始一点:

/**
 * IE8不支持window.getComputedStyle
 * IE9~11中,window.getComputedStyle().cssText返回的总为空字符串
 * 默认的window.getComputedStyle || dom.currentStyle, 返回的css键值对中,键是驼峰命名的。
 */
var oStyle = (window.getComputedStyle && window.getComputedStyle(srcDom, null)) || srcDom.currentStyle,
    cssText = '';
for (var key in oStyle) {
    var v = oStyle[key];
    if (/^[a-z]/i.test(key) && [null, '', undefined].indexOf(v) === -1) {
        dom.style[key] = v;
    }
}

参考资料:

【1】获取元素CSS值之getComputedStyle方法熟悉

【2】Copy all styles from one element to another

展开阅读全文

没有更多推荐了,返回首页