像大多数web开发人员一样,我偶尔喜欢查看网站的源代码,看看它们的标记是如何构建的。像Firebug和Chrome开发者工具这样的工具可以很容易地检查代码,但是如果我想复制一个特定的部分并在本地使用它,复制所有单独的元素和它们相关的CSS将是一件痛苦的事情。保存整个源代码并删除不相关的代码可能需要做同样多的工作。

这将是伟大的,如果我可以在Firebug中右键单击一个元素,并有一个“保存HTML+CSS+JS为这个元素”选项。这样的工具存在吗?是否有可能扩展Firebug或Chrome开发工具来添加此功能?


当前回答

Divclip是一个更新 Florentin Sardan的版本 htmlclipper

与现代增强:ES5, HTML5,范围CSS…

你可以用下面的方法提取一个程式化的div:

var html = require("divclip").bySel(".article-body");
console.log(html);

享受。

其他回答

Webkit浏览器(FireBug不确定)允许您轻松地复制元素的HTML,因此这是过程的一部分。

在复制一个元素的HTML之前运行这个命令(在javascript控制台中)会将给定父元素的所有计算样式以及所有子元素移动到内联样式属性中,然后该属性将作为HTML的一部分可用。

var el = document.querySelector("#someid");
var els = el.getElementsByTagName("*");

for(var i = -1, l = els.length; ++i < l;){

    els[i].setAttribute("style", window.getComputedStyle(els[i]).cssText);

}

这是一个完全的hack,你会有很多“垃圾”css属性,但至少应该让你开始。

jQuery.fn.extend({
getStyles: function() {
    var rulesUsed = [];
    var sheets = document.styleSheets;
    for (var c = 0; c < sheets.length; c++) {
        var rules = sheets[c].rules || sheets[c].cssRules;
        for (var r = 0; r < rules.length; r++) {
            var selectorText = rules[r].selectorText.toLowerCase().replace(":hover","");
            if (this.is(selectorText) || this.find(selectorText).length > 0) {
                rulesUsed.push(rules[r]);
            }
        }
    }
    var style = rulesUsed.map(function(cssRule) {
        return cssRule.selectorText.toLowerCase() + ' { ' + cssRule.style.cssText.toLowerCase() + ' }';
    }).join("\n");
    return style;
}
});

用法:$ (" # login_wrapper ") .getStyles ()

我也需要Firebug上的这个功能!在此之前,另一种方法是使用这个在线服务删除类并将css转换为内联样式。

Divclip是一个更新 Florentin Sardan的版本 htmlclipper

与现代增强:ES5, HTML5,范围CSS…

你可以用下面的方法提取一个程式化的div:

var html = require("divclip").bySel(".article-body");
console.log(html);

享受。

我不知道这是一个具有单一解决方案的工具,但您可以同时使用Firebug和Web Developer扩展。

使用Firebug复制你需要的html部分(Inspect Element)和Web Developer查看哪个css与某个元素相关联(调用Web Developer“查看样式信息”-它的工作方式类似于Firebug的“Inspect Element”,但它显示的不是html标记而是与该标记相关联的css)。

这并不是你想要的(点击所有内容),但它非常接近,至少是直观的。