什么是零宽度空格符


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/03/27/%E4%BB%80%E4%B9%88%E6%98%AF%E9%9B%B6%E5%AE%BD%E5%BA%A6%E7%A9%BA%E6%A0%BC%E7%AC%A6/

摘要

本文主要讲述了:

  1. 什么是零宽度空格符
  2. HTML 中的零宽度空格符
  3. JavaScript 中的零宽度空格符

正文

什么是零宽度空格符

零宽度空格符是 1 个 Unicode 字符,Unicode 码点是U+200B,UTF-8 编码是E2 80 8B

零宽度空格符用于打断长英文单词或长阿拉伯数字,以便于在一行容纳不下时自动分成多行显示。

如果不使用零宽度空格符,长英文单词和长阿拉伯数字会越过盒模型的边界。

和软连字符的区别在于:

  • 零宽度空格符始终时不可见的
  • 软连字符在平时是不可见的,只有在分成多行显示时才能在上一行的行末看到

HTML 中的零宽度空格符

在 HTML 中,以字符值引用的形式使用零宽度空格符。

示例:在 HTML 中使用零宽度空格符。

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<!-- 字符值引用 -->
<div>abc&#x200b;def</div>
</body>
</html>

在 HTML 中,零宽度空格符与<wbr>等效。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<div>abc<wbr />def</div>
</body>
</html>

JavaScript 中的零宽度空格符

在 JavaScript 中,零宽度空格符占据 1 字符串长度。

示例:在 JavaScript 中,以 UTF-16BE 编码的形式使用零宽度空格符。

1
2
3
4
const foo = 'abc\u200bdef';
const bar = 'abc\u{200b}def';
console.log(foo.length); // 7
console.log(bar.length); // 7

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/03/27/%E4%BB%80%E4%B9%88%E6%98%AF%E9%9B%B6%E5%AE%BD%E5%BA%A6%E7%A9%BA%E6%A0%BC%E7%AC%A6/


本文对你有帮助?请支持我


支付宝
微信