如何获取制表符?

问题描述 投票:0回答:7

在 HTML 中,没有用于制表符的字符,但我很困惑为什么我可以在此处复制并粘贴一个字符:“”(您看不到它的完整宽度,但如果您单击编辑我的问题,你会看到这个字符。)如果我可以复制并粘贴制表符,那么应该有一个可以编码为 html 的 unicode 等效字符。我知道它不存在,但这是一个我一直无法理解的谜。

所以我的问题是:即使我可以复制并粘贴它,为什么选项卡没有 unicode 字符?

html
7个回答
241
投票

当然有一个选项卡实体:

	

(制表符是 ASCII 字符 9,或 Unicode U+0009。)

但是,就像文本制表符(在文本编辑器中输入的字符)一样,所有制表符都被 HTML 解析器视为空格,并折叠成单个空格,除了

<pre>
块内的字符,其中文本制表符将在等宽字体中呈现为 8 个空格


161
投票

尝试

&emsp;

根据文档:

字符实体

&ensp;
&emsp;
表示 en 空间和 em space 分别,其中 en 空间是点大小的一半,em 空间是点大小的一半 空间等于当前字体的磅值。对于固定节距 字体,用户代理可以将 en space 视为等同于 A 空格字符,em 空格相当于两个空格 角色。

文档链接:https://www.w3.org/MarkUp/html3/specialchars.html


61
投票

将其放在

<pre></pre>
标签之间,然后使用此字符
&#9;

如果没有

<pre></pre>
标签,它就无法工作


22
投票

发布另一个替代方案以使其更加完整。 当我尝试基于“pre”的答案时,他们还添加了额外的垂直换行符。

每个制表符都可以转换为连续空格,无需换行。

"&nbsp;&nbsp;&nbsp;&nbsp;" 

不建议在页面内重复/广泛使用。 div 边距/填充方法会显得更干净。


7
投票

我使用

<span style="display: inline-block; width: 2ch;">&#9;</span>
作为两个字符宽的选项卡。


2
投票

制表符是 [HT],即 unicode 库中的字符号 9。


1
投票

如上所述,出于效率原因,连续空间被合并为浏览器实际显示的一个空间。记住 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>
© www.soinside.com 2019 - 2024. All rights reserved.