【问题标题】:How to get a summary of your CSS changes in Chrome dev tools?如何在 Chrome 开发工具中获取 CSS 更改的摘要?
【发布时间】:2018-11-11 13:32:01
【问题描述】:

有没有办法获取您在 Chrome 开发工具中应用的自定义 CSS 更改的列表?

当您在 Chrome 开发工具中使用 CSS 以使您的网页看起来正确时,可以方便地轻松跟踪您所做的更改。

我知道工作区,但用例是一个 Angular 5 应用程序,您的 CSS 被捆绑并可能​​被缩小。

澄清一下:

  • 我的页面看起来与应有的样子相去甚远
  • 我在开发工具中做了 20 次 CSS 修复,直到看起来不错
  • 现在我想从原始页面获取 (CSS) 增量,因此我有一个我现在应该在真正的 CSS 样式中实现的更改列表。

【问题讨论】:

    标签: css google-chrome-devtools


    【解决方案1】:

    您可以通过Changes Drawer查看所有更改

    在开发工具中,您可以通过以下任一方式找到更改抽屉:

    • A) 打开命令面板 (Ctrl + Shift + P) 并输入 "changes "



    • B) 打开抽屉 (Esc),点击更多选项菜单(三点),然后选择更改

    进一步阅读

    更新

    【讨论】:

    • 当CSS被缩小并变成单行时,很难找到改变的项目。激活漂亮打印也会使所有新的漂亮打印 CSS 被视为“更改”,这违背了目的。有没有办法解决这个问题?
    • 我无法选择、复制或以任何方式与我所做的更改进行交互。它是如此接近,同时又如此遥远......
    • @pokumars,这应该在开发工具 98 中修复,它会在更改抽屉中自动漂亮地打印 CSS
    • @NeithanMax,非常同意 - 我在 chromium 错误跟踪器中打开了一张票,因此希望它会在未来的周期中得到解决
    【解决方案2】:

    其实你可以做你想做的事:

    转到来源 >> 本地修改

    转到“源”选项卡,选择所需的 CSS 文件,然后右键单击并选择“本地修改”,将为您提供本地更改的 diff 样式摘要。

    或者 - 您可以通过映射本地文件直接将更改保存到本地 CSS 文件,以便 chrome 开发工具自动保存您对此 CSS 文件所做的任何更改。

    【讨论】:

    • 上下文菜单中没有这些选项
    • 我也没有看到这些
    • 我在接受的答案中也问过这个问题,但是 - 当 CSS 被缩小并变成单行时,很难找到更改的项目。激活漂亮打印也会使所有新的漂亮打印 CSS 被视为“更改”,这违背了目的。有没有办法解决这个问题?
    【解决方案3】:

    这取决于你如何应用 css 修复。

    • 如果您应用 css 代码内联,您将无法获得包含您所做的修复列表的文件。

    • 如果您在 inspector-stylesheet 中进行了更改,您可以找到包含所有修复的文件

      转到Source选项卡 >从左侧列表中打开localhost >你可以 查看名为 inspector-stylesheet 的文件。

      这将显示您的所有修复。

    另一种从开发工具中的 'Elements' 选项卡中选择 css 修复的方法,您可以轻松复制所做的编辑并将其粘贴到项目的 css 文件中,或者您可以编辑源文件本身开发工具中的 'Source' 选项卡中,您需要做两件事来保留所做的更改:

    1. 通过按 Ctrl + SCmd + S 保存更改并自动将更改保存在您的项目文件中的根 css 文件。

    2. 您可以将更改从开发工具复制并粘贴到代码编辑器中的 css 文件中

    【讨论】:

    • 我编辑了这个问题,希望能阐明我想要什么
    【解决方案4】:

    嗯,我学到了一些新东西?

    如何在控制台中监控内联样式的变化

    https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

    参考:https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/

    const targetNode = document
    
    // Options for the observer (which mutations to observe)
    const config = { attributes: true, childList: true, subtree: true };
    
    // Callback function to execute when mutations are observed
    const callback = function(mutationsList, observer) {
        // Use traditional 'for loops' for IE 11
        for(let mutation of mutationsList) {
            if (mutation.type === 'childList') {
                console.log('A child node has been added or removed.');
            }
            else if (mutation.type === 'attributes') {
                console.log('The ' + mutation.attributeName + ' attribute was modified.');
                console.log({
                  mutation, 
                  inline: mutation.target.style[0], 
                  style: mutation.target.style[mutation.target.style[0]]
                })
    
    
            }
        }
    };
    
    // Create an observer instance linked to the callback function
    const observer = new MutationObserver(callback);
    
    // Start observing the target node for configured mutations
    observer.observe(targetNode, config);
    

    这并不能解决问题

    但可以用作问题自定义解决方案的起点。

    每个元素的自定义差异将旧值替换为最新值,您最终可能会使用您自己维护的列表获得到目前为止所有更改的差异。

    这可能是每个浏览器的 pr 或创建为 chrome 扩展。 Goodluck,想提出一个可能的解决方案,而不是说这是不可能的。

    【讨论】:

      【解决方案5】:

      我知道这是“另一个”主题,但您可以尝试在 VS Code 中的一些实时检查器扩展中启动它,以便跟踪所有内容...

      【讨论】:

      • 感谢 scoop96,您能详细说明一下您的意思吗?
      • 是的,有一些扩展,比如实时服务器,可以随时编译 css 和所有内容。其中一些在 vscode 内部有日志或迷你终端。如果适合你可以试试
      猜你喜欢
      • 2017-03-02
      • 2021-01-01
      • 2012-09-23
      • 2011-10-14
      • 2015-12-06
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多