制表符是否可以代替多个不间断空格("nbsp")?

1049

在HTML中,是否可以插入制表符而不是必须键入四个 字符?


24
我发现在行首多次使用制表符(例如引用C代码时)时,使用<PRE>很有帮助。 - Guy Kovel
一个 TAB 字符是用来做什么的? - Michel de Ruiter
你可以定义自己的标签 <tab>,然后在 ready 函数中使用 jQuery 来替换或填充它们所需的等效空格数量。 - Khaled.K
如果你真的需要选项卡,不妨尝试使用 white-space - Buksy
9
如果一个静态的4x&nbsp;(或单个的&emsp;)不能满足你的需求,并且你想要它们对齐到下一个"4个空格"的列,就像制表符所做的那样(这意味着有时实际上需要0、1、2或3个空格来对齐)...比如,在某些文本编辑器中...不幸的是,在HTML中你不能这样做...除非使用<table>元素,而且尝试使用一些空格来进行hack将需要使用固定字体...我认为大部分问题都在于需要固定字体以及HTML喜欢删除空白字符之间。 - Pimp Trizkit
显示剩余2条评论
37个回答

18

据我所知,唯一的方法是使用

&nbsp;

如果你会使用CSS,那么你就可以使用padding或margin。参见盒模型,而对于Internet Explorer,还需要阅读Internet Explorer盒模型Bug


11

如果您只想缩进段落中的第一句话,您可以使用一个小的CSS技巧来实现:

p:first-letter {
    margin-left: 5em;
}

嗯,那也可以。只需记得将其放置在:first-letter上,如果目的仅是缩进第一句话。 - peirix

10

<tab>标签从HTML3开始引入,但从未在浏览器中实现。我一直认为这是个遗憾,因为如果我们能使用它,在许多情况下会更加方便。但是,您可以很容易地通过在 HTML 的头部或者 CSS 中添加以下内容(不需要style标签)来创建一个假的<tab>标签:

<style>
    tab { padding-left: 4em; }
</style>

从那时起,当您需要在文档中插入制表符时,请使用<tab>。它不是一个真正的制表符,因为它不会对齐制表符标记,但对于大多数需要而言,它可以胜任,无需使用笨重的字符实体或跨度等方法。它使检查源代码变得非常容易,并且可以轻松格式化简单的内容,而无需使用表格或其他更复杂的“解决方案”。

这种解决方案的一个好处是,您可以快速搜索/替换文本文档,将所有TAB替换为<tab>标签。

您可能可以定义一堆真正的绝对位置制表符,然后在需要时使用适当的制表符(例如<tab2>或<tab5>或其他),但我没有找到一种方法可以做到这一点而不缩进后续行。


10
如果空格变得非常重要,最好使用预格式化文本和<pre>标签。

这位 OP 并不太在意空格,只是询问有没有多个 &nbsp; 的快捷方式。调用 <pre> 标签会增加很多额外的工作。 - isomorphismes
为避免等宽字体,请使用 CSS 的 "white-space:pre-wrap"。 - hultqvist
空格并不是一个“非常重要”的东西。它是生活的一部分。 - Radvylf Programs

7

我使用了带有内联样式的 span。我不得不这样做,因为我正在处理一串纯文本,并需要用 4 个空格(约)替换 \t。我不能使用 &nbsp;,因为在后面的过程中它们被解释为非内容空格,最终标记中会出现这些空格。

HTML:

<span style="padding: 0 40px">&nbsp;</span>

我在一个php函数中使用它,就像这样:

$message = preg_replace('/\t/', '<span style="padding: 0 40px">&nbsp;</span>', $message);

7
您可以使用表格并将 width 属性应用于第一个 <td>
<table>
    <tr>
        <td width="100">Content1</td>
        <td>Content2</td>
    </tr>
    <tr>
        <td>Content3</td>
        <td>Content4</td>
    </tr>
</table>

结果

Content1       Content2
Content3       Content4

7
如果你只需要一个选项卡,以下内容适用于我。
<style>
  .tab {
    position: absolute;
    left: 10em;
   }
</style>

使用类似以下HTML的内容:

<p><b>asdf</b> <span class="tab">99967</span></p>
<p><b>hjkl</b> <span class="tab">88868</span></p> 

您可以通过添加更多的“tab”样式并更改HTML来添加更多的“选项卡”,例如:
<style>
  .tab {
    position: absolute;
    left: 10em;
   }
  .tab1 {
    position: absolute;
    left: 20em;
   }
</style>

使用类似以下的HTML:

<p><b>asdf</b> <span class="tab">99967</span><span class="tab1">hear</span></p>
<p><b>hjkl</b> <span class="tab">88868</span><span class="tab1">here</span></p>

7

这是一个简单的CSS样式:

white-space: pre;

它保留了您在HTML中添加的空格,而不将它们合并。

6
如果您正在使用CSS,我建议采用以下方法:
p:first-letter  {
   text-indent:1em;
}

这将缩进第一行,就像传统出版物中一样。

5

你可以使用 &emsp; 一次代替四个空格等于一个制表符


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接