本网站使用 cookies 进行谷歌分析。

根据隐私法,您不能在不接受使用这些 cookie 的情况下使用本网站。

查看隐私政策

接受即表示您同意 Google Analytics 跟踪 cookie。您可以通过清除浏览器中的 cookie 来撤销此同意。

关键 CSS 生成器

一个免费的浏览器小部件,用于高级关键 CSS 生成器和首屏优化器

首屏优化器

关键 CSS 生成器和首屏优化器 关键 CSS 生成器和首屏优化器


介绍

Critical CSS 生成器能够解决 Google 的 Core Web Vitals 问题,纯粹基于最小 CSS消除未使用的 CSS惩罚。它能够实现像素完美的结果

最佳关键 CSS 结果是在真实浏览器中实现的。

浏览器小部件在要提取关键 CSS 的页面上执行,因此可以完全原生访问原始 CSS 环境。

您可以选择要从中提取关键 CSS 的样式表或内联样式表元素。这对于创建可以在页面之间共享的关键 CSS 很方便。

浏览器小部件还具有从样式表中删除关键 CSS 的功能。

该工具是无间谍的。没有谷歌分析或跟踪。使用安全,可以通过 Service Worker 缓存在本地使用。

浏览器小部件提供了更高级的关键 CSS 软件示例,可以通过 Google Cloud 中的 Chrome 浏览器使用该软件。有关更多信息,请参阅我们的专业优化插件


安装

要安装小部件,拖动此链接🗔 关键CSS拖到收藏夹栏或复制并粘贴下面的代码。

add widget to bookmarks
选修的 授权Service WorkerCache-API for Google CDN 安全域x.pagespeed.pro跨域持久设置并离线或在localhost上使用小部件。

特征

  1. 高级关键 CSS 生成器

    1. 基于PostCSS定制开发,最好的 CSS 解析器之一。
    2. 支持响应式关键 CSS的多视口(桌面 + 移动)。
    3. Puppeteer 喜欢浏览器控件,包括单击、鼠标事件(悬停、移动等)、滚动、自定义 javascript 代码执行等等。
    4. 原始未优化的纯关键 CSS 输出。
  2. 首屏优化器

    1. 将关键 CSS 与原始 CSS 进行比较。
    2. 可定制的像素测量标尺。
  3. 高级优化工具

    1. 未使用的 CSS 移除器,用于从样式表中移除关键 CSS。
    2. 专业的CSS压缩(minify)和优化软件。
    3. 损坏的 CSS 修复。修复格式错误的 CSS 的工具。
    4. 自动前缀。将浏览器前缀应用于 CSS 的工具。
    5. CSS 统计和分析。
    6. CSS美化。
    7. 高级 CSS 棉绒。
    8. 重复的 CSS 去除器。
    9. 高级 CSS 编辑器连接到带有优化提示的 CSS lint。

如何使用

第 1 步:在页面上启动浏览器小部件

导航到要提取关键 CSS 的页面并启动浏览器小部件。单击此处获取安装说明。

第 2 步:生成关键 CSS

可以通过标题中的“工具”选项卡访问关键的 CSS 生成器。

关键 CSS 生成器和首屏优化器

使用文档中的选项配置 JSON。

关键 CSS 生成器和首屏优化器

第三步:优化结果

关键 CSS 生成器的输出是原始的,需要进一步优化,例如压缩。

关键 CSS 生成器和首屏优化器

编辑器菜单中的优化按钮可以应用高级代码优化和压缩。

关键 CSS 生成器和首屏优化器


文档

关键 CSS 生成器

关键 CSS 生成器接受以下选项。

选项
描述
类型
atRulesToKeep
强制包含在关键 CSS 中的一组 CSS @ 规则(字符串或正则表达式)。
["media", "charset", "/rule(.*)/i"]
atRulesToRemove
强制从关键 CSS 中删除的一组 CSS @ 规则(字符串或正则表达式)。
["media", "charset", "/rule(.*)/i"]
selectorsToKeep
强制包含在关键 CSS 中的一组 CSS 选择器(字符串或正则表达式)。
[".selector", "/\\.selector(.*)/i"]
selectorsToRemove
强制从关键 CSS 中删除的 CSS 选择器数组(字符串或正则表达式)。
[".selector", "/\\.selector(.*)/i"]
propertiesToKeep
强制包含在关键 CSS 中的一组 CSS 声明(字符串或正则表达式)。要匹配值,请使用第二级数组,声明字符串或正则表达式位于索引 0 处,值字符串或正则表达式位于索引 1 处。
["-webkit-transition", "/(.*)transition(.*)/i", [ "display", "none" ] ]
propertiesToRemove
要从关键 CSS 中强制删除的一组 CSS 声明(字符串或正则表达式)。要匹配值,请使用第二级数组,声明字符串或正则表达式位于索引 0 处,值字符串或正则表达式位于索引 1 处。
["-webkit-transition", "/(.*)transition(.*)/i", [ "display", "none" ] ]
pseudoSelectorsToKeep
强制包含在关键 CSS 中的一组 CSS 伪选择器(字符串或正则表达式)。
[":before", "/:nth-child(.*)/i"]
pseudoSelectorsToRemove
强制从关键 CSS 中删除的一组 CSS 伪选择器(字符串或正则表达式)。
[":before", "/:nth-child(.*)/i"]
maxElementsToCheckPerSelector
要检查折叠可见性的最大元素数量。此设置会影响发电机的速度。
false or 100
maxEmbeddedBase64Length
要包含在关键 CSS 中的 Base64 编码内联图像的最大大小(以字节为单位)。
1000
strictParser
默认情况下,使用自动修复语法错误的容错 PostCSS 安全解析器解析 CSS。此设置允许使用严格的解析器。
true
ui_actions
在 UI 状态上执行的一系列操作以发现首屏 CSS 代码。请参阅下面的UI 操作文档
[{"viewport":"360x640"}, {"run": true}]

显示示例配置

示例关键 CSS 生成器配置

{
  "atRulesToKeep": [],
  "atRulesToRemove": [],
  "selectorsToKeep": [
    "*",
    "*:before",
    "*:after",
    "html",
    "body"
  ],
  "selectorsToRemove": [
    "/\#C/",
    "/\.chattxt/"
  ],
  "propertiesToKeep": [],
  "propertiesToRemove": [
    "/(.*)transition(.*)/i",
    "cursor",
    "pointer-events",
    "/(-webkit-)?tap-highlight-color/i",
    "/(.*)user-select/i"
  ],
  "pseudoSelectorsToKeep": [
    "::before",
    "::after",
    "::first-letter",
    "::first-line",
    ":before",
    ":after",
    ":first-letter",
    ":first-line",
    ":visited",
    "/:nth-child.*/"
  ],
  "pseudoSelectorsToRemove": [],
  "maxElementsToCheckPerSelector": false,
  "maxEmbeddedBase64Length": 1000,
  "strictParser": false,
  "ui_actions": [
    {
      "viewport": "360x640",
      "notes": "为首屏 CSS 发现设置视口。"
    },
    {
      "wait": 1000,
      "notes": "等待 1000 毫秒以使视口能够呈现。"
    },
    {
      "run": true,
      "notes": "运行关键 CSS 生成器(首屏 CSS 计算)。"
    },
    {
      "mouseevent": "click",
      "selector": "a.nav-menu",
      "notes": "在 a.nav-menu DOM 元素上触发新的 MouseEvent。"
    },
    {
      "wait": 2000
    },
    {
      "run": true
    },
    {
      "script": "close_nav_menu();",
      "notes": "执行脚本,在这种情况下,在继续下一个视口之前关闭菜单。"
    },
    {
      "viewport": "1300x900"
    },
    {
      "wait": 1000
    },
    {
      "run": true
    }
  ]
}

关键 CSS 生成器的UI 操作

关键的 CSS 生成器提供类似 Puppeteer 的浏览器控件。 ui_actions参数接受一个数组,其中包含按时间顺序定义 UI 状态更改的 UI 操作对象。

run

在当前 UI 状态上运行关键 CSS 生成器。每次 UI 状态更改时都需要重复此操作,以便发现新的首屏 CSS 代码。

{
  "run": true
}

wait

在继续下一步操作之前等待几毫秒。

{
  "wait": 1000
}

viewport

设置视口大小。

{
  "viewport": "1300x900"
}

scroll

滚动视口。该选项接受数值(距离顶部的像素)、百分比字符串 ( 50% ) 或具有[x,y]位置(以像素为单位)的数组。

{
  "scroll": 400
}

event

在可选的 DOM 选择器上触发浏览器事件 ( new Event() )。

{
  "event": "click",
  "selector": "a.link"
}

mouseevent

在可选的 DOM 选择器上触发鼠标事件 ( new MouseEvent() )。该操作接受带有MouseEvent 选项的mouseEventInit参数,其中包括设置 x,y 坐标的能力。当省略mouseEventInit时,默认选项为{"bubbles": true,"cancelable": true}

{
  "mouseevent": "mouseover",
  "selector": "a.link",
  "mouseEventInit": {
    "bubbles": true,
    "cancelable": true
  }
}

script

评估 JavaScript 代码。此操作允许在页面上执行 javascript 代码,例如,在进一步更改 UI 状态之前关闭弹出窗口。

{
  "script": "Popups.close();"
}

fn

执行一个 javascript 函数。此操作可以执行预配置的 javascript 函数。额外的选项"promise":true可以期待一个承诺并等待承诺解决,然后再继续下一个动作。

{
  "fn": "action_to_perform",
  "promise": true
}

notes

每个操作对象都接受一个notes参数,该参数可用于添加描述性文本。

{
  "script": "add_to_cart();",
  "notes": "个人使用的 UI 操作说明"
}

显示示例配置

示例 UI 操作配置

{
  "ui_actions": [
    {
      "viewport": "360x640",
      "notes": "为首屏 CSS 发现设置视口。"
    },
    {
      "wait": 1000,
      "notes": "等待 1000 毫秒以使视口能够呈现。"
    },
    {
      "run": true,
      "notes": "运行关键 CSS 生成器(首屏 CSS 计算)。"
    },
    {
      "mouseevent": "click",
      "selector": "a.nav-menu",
      "notes": "在 a.nav-menu DOM 元素上触发新的 MouseEvent。"
    },
    {
      "wait": 2000
    },
    {
      "run": true
    },
    {
      "script": "close_nav_menu();",
      "notes": "执行脚本,在这种情况下,在继续下一个视口之前关闭菜单。"
    },
    {
      "viewport": "1300x900"
    },
    {
      "wait": 1000
    },
    {
      "run": true
    }
  ]
}

未使用的 CSS 移除器

未使用的 CSS 去除器使用与关键 CSS 提取器相同的软件,并接受几乎相同的配置选项,包括通过 UI 操作进行类似 Puppeteer 的浏览器控制。该工具还可以提取未使用的 CSS。

显示示例配置

未使用的 CSS 去除器的示例配置

{
  "atRulesToKeep": [
    "charset",
    "keyframes",
    "import",
    "namespace",
    "page"
  ],
  "atRulesToRemove": [],
  "selectorsToKeep": [
    "*",
    "*:before",
    "*:after",
    "html",
    "body"
  ],
  "selectorsToRemove": [],
  "propertiesToKeep": [],
  "propertiesToRemove": [],
  "pseudoSelectorsToKeep": [
    "/:.*/"
  ],
  "pseudoSelectorsToRemove": [],
  "maxElementsToCheckPerSelector": false,
  "strictParser": false,
  "ui_actions": [
    {
      run: true
    }
  ]
}

重复的 CSS 去除器

重复的 CSS 移除器可以比较两个样式表并移除或提取重复的 CSS。

显示示例配置

重复 CSS 去除器的示例配置

{
  "atRulesToKeep": [],
  "atRulesToRemove": [],
  "selectorsToKeep": [],
  "selectorsToRemove": [],
  "propertiesToKeep": [],
  "propertiesToRemove": [],
  "strictParser": false
}

第二个输入字段接受样式表索引号。您可以在设置选项卡上的样式表概述中找到样式表的索引。

样式表索引概述 样式表索引概述

您可以上传样式表或通过创建新样式表比较来自外部 URL 的样式表。然后,您可以导入 URL 或上传样式表,并在重复的 CSS 删除器中使用新样式表中的索引。

导入或上传样式表 导入或上传样式表

配置完成后,按下按钮启动重复的 CSS 移除器。 CSS 注释将显示生成的简化 CSS 的基本统计信息。

重复 CSS 去除器的结果 重复 CSS 去除器的结果