# cssesc 中文文档

规范地址：https://npmcn.com/package/cssesc/

版本：3\.0\.0
npm 元数据更新时间：2022-06-14T05:03:26.578Z
中文译文更新时间：2026-11-05T15:21:25.831Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/cssesc
原文对照：https://npmcn.com/package/cssesc/?lang=original
项目主页：https://mths.be/cssesc
源码仓库：https://github.com/mathiasbynens/cssesc

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：17.5 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=4
- 运行依赖：0 个
- 首次发布：2013-08-09T13:30:10.779Z
- 最新版本发布：2019-02-04T16:34:20.250Z
- 近 30 天下载量：392228513（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

一个 JavaScript 库,用于在生成尽可能最短的 ASCII 仅输出的同时,逃离 CSS 字符串和标识符 .

## 安装

```sh
npm install cssesc
```

也可以使用：`pnpm add cssesc`、`yarn add cssesc`、`bun add cssesc`

## README

# 缩写c [![Build status](https://travis-ci.org/mathiasbynens/cssesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/cssesc) [![Code coverage status](https://img.shields.io/codecov/c/github/mathiasbynens/cssesc.svg)](https://codecov.io/gh/mathiasbynens/cssesc)

一个 JavaScript 库,用于在生成尽可能最短的 ASCII 仅输出的同时,逃离 CSS 字符串和标识符 .

这是 JavaScript 库 [从文本中逃出用于 CSS 字符串或标识符](https://mathiasbynens.be/notes/css-escapes) 生成尽可能短的有效 ASCII 输出. [以下是在线演示.](https://mothereff.in/css-escapes)

[CSSOM 的多填充器 `CSS.escape()` 方法在一个单独的仓库中可用.](https://mths.be/cssescape) (比较而言, _缩写c_ (掌声)

如果你看到可能的改进,请随意叉出!

## 安装

通过 [无](https://www.npmjs.com/)数字 :

```bash
npm install cssesc
```

在浏览器中 :

```html
<script src="cssesc.js"></script>
```

单位 [节点.js](https://nodejs.org/)数字 :

```js
const cssesc = require('cssesc');
```

在 Ruby 中使用 [页:1 `ruby-cssesc` 包装宝石](https://github.com/borodean/ruby-cssesc)数字 :

```bash
gem install ruby-cssesc
```

```ruby
require 'ruby-cssesc'
CSSEsc.escape('I ♥ Ruby', is_identifier: true)
```

在 Sass 中使用 [`sassy-escape`](https://github.com/borodean/sassy-escape)数字 :

```bash
gem install sassy-escape
```

```scss
body {
  content: escape('I ♥ Sass', $is-identifier: true);
}
```

## API 密码

### `cssesc(value, options)`

此函数取出一个值, 并返回一个未打印的 ASCII 符号使用尽可能最短( 但有效) 的字符所隐藏的值版本 [用于 CSS 字符串或标识符的逃脱序列](https://mathiasbynens.be/notes/css-escapes)。 。 。 .

```js
cssesc('Ich ♥ Bücher');
// → 'Ich \\2665  B\\FC cher'

cssesc('foo 𝌆 bar');
// → 'foo \\1D306  bar'
```

默认, `cssesc` 返回可以作为 CSS 字符串一部分的字符串。 如果目标是一个CSS标识符而不是CSS字符串,则使用 `isIdentifier: true` 设置(见下文).

可选 `options` 参数接受一个对象,其选项如下:

#### `isIdentifier`

默认值 `isIdentifier` 选项 `false`。这意味着输入文本将被从 CSS 字符串文字中逃出使用。 如果您想要将结果用作 CSS 标识符( 例如在选择器中), 请设置此选项为 `true`。 。 。 .

```js
cssesc('123a2b');
// → '123a2b'

cssesc('123a2b', {
  'isIdentifier': true
});
// → '\\31 23a2b'
```

#### `quotes`

默认值 `quotes` 选项 `'single'`。这意味着: `'` 在输入文本中,将按 `\'`,这样输出就可以被用单引号包裹的 CSS 字符串文字所使用.

```js
cssesc('Lorem ipsum "dolor" sit \'amet\' etc.');
// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.'
// → "Lorem ipsum \"dolor\" sit \\'amet\\' etc."

cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', {
  'quotes': 'single'
});
// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.'
// → "Lorem ipsum \"dolor\" sit \\'amet\\' etc."
```

如果您想要将输出作为 CSS 字符串文字的一部分, 请设置 `quotes` 选项到 `'double'`。 。 。 .

```js
cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', {
  'quotes': 'double'
});
// → 'Lorem ipsum \\"dolor\\" sit \'amet\' etc.'
// → "Lorem ipsum \\\"dolor\\\" sit 'amet' etc."
```

#### `wrap`

这个 `wrap` 选项需要布尔值 (`true` 或者说 `false`),默认为 `false` (残疾). 启用时, 输出会是一个有效的 CSS 字符串字符串, 用引号包裹 。 引用类型可以通过 `quotes` 设置.

```js
cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', {
  'quotes': 'single',
  'wrap': true
});
// → '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\''
// → "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'"

cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', {
  'quotes': 'double',
  'wrap': true
});
// → '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."'
// → "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\""
```

#### `escapeEverything`

这个 `escapeEverything` 选项需要布尔值 (`true` 或者说 `false`),默认为 `false` (残疾). 当启用时,输出中的所有符号都会被逃脱,甚至是可打印的ASCII符号.

```js
cssesc('lolwat"foo\'bar', {
  'escapeEverything': true
});
// → '\\6C\\6F\\6C\\77\\61\\74\\"\\66\\6F\\6F\\\'\\62\\61\\72'
// → "\\6C\\6F\\6C\\77\\61\\74\\\"\\66\\6F\\6F\\'\\62\\61\\72"
```

#### 在全球覆盖默认选项

全球默认设置可以通过修改 `css.options` 对象。 这可以让你避免经过 `options` 每次呼叫对象 `encode` 如果您想要使用非默认设置.

```js
// Read the global default setting for `escapeEverything`:
cssesc.options.escapeEverything;
// → `false` by default

// Override the global default setting for `escapeEverything`:
cssesc.options.escapeEverything = true;

// Using the global default setting for `escapeEverything`, which is now `true`:
cssesc('foo © bar ≠ baz 𝌆 qux');
// → '\\66\\6F\\6F\\ \\A9\\ \\62\\61\\72\\ \\2260\\ \\62\\61\\7A\\ \\1D306\\ \\71\\75\\78'
```

### `cssesc.version`

一个代表语义版本编号的字符串.

### 使用 `cssesc` 二进制

用来使用 `cssesc` 二进制在您的外壳中, 只需使用 npm 在全球安装 cssesc :

```bash
npm install -g cssesc
```

在此之后, 您可以从命令行中逃出文本, 用于 CSS 字符串或标识符 :

```bash
$ cssesc 'föo ♥ bår 𝌆 baz'
f\F6o \2665  b\E5r \1D306  baz
```

如果输出需要作为 CSS 标识符而不是字符串字元的一部分,则使用 `-i`编号 :`--identifier` 选项 :

```bash
$ cssesc --identifier 'föo ♥ bår 𝌆 baz'
f\F6o\ \2665\ b\E5r\ \1D306\ baz
```

见 `cssesc --help` 用于完整选项列表.

## 支助

此库支持其中提及的Node.js和浏览器版本 [`.babelrc`](https://github.com/mathiasbynens/cssesc/blob/master/.babelrc)。对于一个支持更广泛的传统浏览器和环境的版本, [见v.1.0](https://github.com/mathiasbynens/cssesc/releases/tag/v0.1.0)。 。 。 .

## 作者

| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
| --- |
| [马蒂亚斯·拜恩斯](https://mathiasbynens.be/) |

## 许可证

该图书馆可在 [麻省理工学院](https://mths.be/mit) 执照.

## 常见问题

### cssesc 是什么？

一个 JavaScript 库,用于在生成尽可能最短的 ASCII 仅输出的同时,逃离 CSS 字符串和标识符 \.

### 如何安装 cssesc？

在项目目录运行 npm install cssesc，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cssesc，可以用 npx cssesc 直接运行。

### cssesc 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/cssesc 是否存在。

### cssesc 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### cssesc 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=4。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### cssesc 可以商用吗？

cssesc 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### cssesc 的下载量有多少？

根据 npm 官方下载统计，cssesc 在 2026/10/07 – 2026/11/05 这 30 天内被下载 392,228,513 次，日均约 13,074,284 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### cssesc 还在维护吗？

最新版本 3\.0\.0 发布于 2019/02/05（7 年前）；至今共发布 5 个版本，其中过去 12 个月发布了 0 个；首次发布于 2013/08/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

