在 HTML 中,没有用于制表符的字符,但我很困惑为什么我可以在此处复制并粘贴一个字符:“”(您看不到它的完整宽度,但如果您单击编辑我的问题,你会看到这个字符。)如果我可以复制并粘贴制表符,那么应该有一个可以编码为 html 的 unicode 等效字符。我知道它不存在,但这是一个我一直无法理解的谜。
所以我的问题是:即使我可以复制并粘贴它,为什么选项卡没有 unicode 字符?
当然有一个选项卡实体:
	
(制表符是 ASCII 字符 9,或 Unicode U+0009。)
但是,就像文本制表符(在文本编辑器中输入的字符)一样,所有制表符都被 HTML 解析器视为空格,并折叠成单个空格,除了
<pre>
块内的字符,其中文本制表符将在等宽字体中呈现为 8 个空格。
尝试
 
根据文档:
字符实体
和 
表示 en 空间和 em space 分别,其中 en 空间是点大小的一半,em 空间是点大小的一半 空间等于当前字体的磅值。对于固定节距 字体,用户代理可以将 en space 视为等同于 A 空格字符,em 空格相当于两个空格 角色。 
将其放在
<pre></pre>
标签之间,然后使用此字符 	
如果没有
<pre></pre>
标签,它就无法工作
发布另一个替代方案以使其更加完整。 当我尝试基于“pre”的答案时,他们还添加了额外的垂直换行符。
每个制表符都可以转换为连续空格,无需换行。
" "
不建议在页面内重复/广泛使用。 div 边距/填充方法会显得更干净。
我使用
<span style="display: inline-block; width: 2ch;">	</span>
作为两个字符宽的选项卡。
制表符是 [HT],即 unicode 库中的字符号 9。
如上所述,出于效率原因,连续空间被合并为浏览器实际显示的一个空间。记住 HTML 中的 ML 代表什么。它是一种标记语言,旨在控制文本的显示方式......而不是空白:p
不过,您可以假装浏览器支持制表符,因为制表符所做的只是在前面添加 4 个空格,这对于 CSS 来说很容易。 要么像...
一样排队 <div style="padding-left:4.00em;">Indented text </div>
或者作为样式表中的常规课程
.tabbed {padding-left:4.00em;}
那么 HTML 可能看起来像这样
<p>regular paragraph regular paragraph regular paragraph</p>
<p class="tabbed">Indented text Indented text Indented text</p>
<p>regular paragraph regular paragraph regular paragraph</p>