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


当前回答

 这就是答案。

然而,如果你习惯于在Word、Wordperfect、Open Office、Wordworth等文字处理软件中使用水平表格,那么它们的功能就不会像你预期的那样强大。它们是固定宽度的,不能定制。

CSS为您提供了更大的控制,并在W3C提供官方解决方案之前提供了替代方案。

例子:

padding-left:4em 

…或…

margin-left:4em 

..适当的

这取决于您想要使用的字符集。

你可以设置一些标签,并像使用h标签一样使用它们。

<style>
    tab1 { padding-left: 4em; }
    tab2 { padding-left: 8em; }
    tab3 { padding-left: 12em; }
    tab4 { padding-left: 16em; }
    tab5 { padding-left: 20em; }
    tab6 { padding-left: 24em; }
    tab7 { padding-left: 28em; }
    tab8 { padding-left: 32em; }
    tab9 { padding-left: 36em; }
    tab10 { padding-left: 40em; }
    tab11 { padding-left: 44em; }
    tab12 { padding-left: 48em; }
    tab13 { padding-left: 52em; }
    tab14 { padding-left: 56em; }
    tab15 { padding-left: 60em; }
    tab16 { padding-left: 64em; }
</style>

...像这样使用它们:

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tabulation example</title> <style type="text/css"> dummydeclaration { padding-left: 4em; } /* Firefox ignores first declaration for some reason */ tab1 { padding-left: 4em; } tab2 { padding-left: 8em; } tab3 { padding-left: 12em; } tab4 { padding-left: 16em; } tab5 { padding-left: 20em; } tab6 { padding-left: 24em; } tab7 { padding-left: 28em; } tab8 { padding-left: 32em; } tab9 { padding-left: 36em; } tab10 { padding-left: 40em; } tab11 { padding-left: 44em; } tab12 { padding-left: 48em; } tab13 { padding-left: 52em; } tab14 { padding-left: 56em; } tab15 { padding-left: 60em; } tab16 { padding-left: 64em; } </style> </head> <body> <p>Non tabulated text</p> <p><tab1>Tabulated text</tab1></p> <p><tab2>Tabulated text</tab2></p> <p><tab3>Tabulated text</tab3></p> <p><tab3>Tabulated text</tab3></p> <p><tab2>Tabulated text</tab2></p> <p><tab3>Tabulated text</tab3></p> <p><tab4>Tabulated text</tab4></p> <p><tab4>Tabulated text</tab4></p> <p>Non tabulated text</p> <p><tab3>Tabulated text</tab3></p> <p><tab4>Tabulated text</tab4></p> <p><tab4>Tabulated text</tab4></p> <p><tab1>Tabulated text</tab1></p> <p><tab2>Tabulated text</tab2></p> </body> </html>

运行上面的代码片段以查看一个可视化示例。

额外的讨论

在ISO-8859-1 HTML中没有定义水平表格实体,但是除了通常的&nbsp之外,还有一些其他可用的空白字符,例如;&ensp &thinsp;;和前面提到的&emsp;。

值得一提的是,在ASCII和Unicode中,&#09;是一个水平表格。

其他回答

如果你只是想缩进段落中的第一句话,你可以用一个CSS小技巧来做到这一点:

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

不,就HTML而言,Tab只是空白。我推荐一个这么大的em-space(→| |←)…通常是4个空格宽,输入为&emsp;

如果幸运的话,您甚至可以使用Unicode字符(" ")来表示它。

下面是Unicode中空格字符和“零宽度空格”的列表。

我只想建议:

/* In your CSS code: */
pre
{
    display:inline;
}

<!-- And then, in your HTML code: -->

<pre>    This text comes after four spaces.</pre>
<span> Continue the line with other element without braking </span>

而不是写&nbsp;四个时间为空格等于制表符,可以写&emsp;一次。

我已经使用了一个span与行内样式。我不得不这样做,因为我正在处理一个纯文本字符串,需要用4个空格(appx)替换\t。我不能使用&nbsp;在进一步的过程中,它们被解释,所以最后的标记有非内容空间。

HTML:

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

我在一个php函数中使用了它:

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