标签空间而不是多个不间断的空格("nbsp")?

Roc*_*och 931 html

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

kri*_*ian 1253

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

有一个在ISO-8859-1 HTML定义没有标签的实体-但也有比其他几个空格字符 ,如 ,  .

在ASCII中,	是一个选项卡.

是HTML实体的完整列表,以及对维基百科上的空白的有用讨论.

  •   是最适合我的东西. (47认同)
  • @Shafizadeh来自[W3规范](https://www.w3.org/MarkUp/html3/specialchars.html):_en空格是磅值的一半,而em空格等于当前字体的磅值。 _` `稍大一些。我可以看到Chrome 64和FireFox 58的区别。 (3认同)
  • ` `和` `之间有什么区别?我测试过,两者都有完全相同的空间..! (2认同)
  • 制作	的秘诀 在HTML中显示为选项卡式空间的是CSS空格定义。<p style =“ display:inline-block; white-space:pre-wrap;”>	¡Muy bien!使用西班牙和英语</ p>对我有效。空白:pre; 也可以。您还可以将“ tab”标签<tab />与CSS :: before Selector tab :: before {content:“ \ 0009”;}一起使用,但是在突出显示,剪切和粘贴时它不会显示为标签。 (2认同)

Alo*_*hci 569

使用CSS更清晰.尝试padding-left:5emmargin-left:5em酌情改为.

  • @AlexV - 如果你使用`em`作为维度,就像我一样,它应该随文本大小扩展.即使不这样做,也取决于所使用的缩放机制的性质. (14认同)
  • 使用CSS的@Alohci IMHO填充并不是那么好,因为当您在浏览器中缩放文本时,文本大小会增加但不会填充AFAIK. (12认同)
  • 这不回答这个问题.克里斯蒂安在下面的答案解决了用户发布的问题 (5认同)
  • @DavidThielen - HTML 3,其中出现的TAB元素与浏览器制造商不同,TAB元素从未实现过.相反,创建了HTML 3.2,它有点简单,而是实现了. (2认同)
  • @Eoin - 的确如此.即在这些情况下你真正想要的是tab*stops*.但这不是OP所要求的.OP要求替换多个连续的非破坏空间,这些空间也不会排成行.CSS有一个`tab-size`属性,这是你真正想要的,但它的浏览器支持一直不稳定.如果做不到这一点,桌面布局或者flexbox是你最好的选择. (2认同)
  • 这不是正确的反应。您不回答是否有制表符! (2认同)

Wil*_*son 232

不,就HTML而言,Tab只是空格.我推荐一个em-space而不是这个大(→| |←)... 通常是 4个空格宽 - 并输入为 .

如果你幸运的话,你甚至可以使用Unicode 字符(" ?")来逃避它.

  • 其他空格字符也可用http://amp-what.com/#q=space (13认同)

Kni*_*ins 192

  是答案.

但是,如果您习惯在Word处理器中使用水平制表符,例如Word,Wordperfect,Open Office,Wordworth等,它们将不会像您预期的那样功能.它们是固定宽度的,并且无法自定义.

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

例:

padding-left:4em 
Run Code Online (Sandbox Code Playgroud)

..要么..

margin-left:4em 
Run Code Online (Sandbox Code Playgroud)

..作为适当的

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

您可以设置一些选项卡标签,并使用它们与使用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>
Run Code Online (Sandbox Code Playgroud)

......并像这样使用它们:

<!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>
Run Code Online (Sandbox Code Playgroud)

运行上面的代码段以查看可视示例.

额外的讨论

ISO-8859-1 HTML中没有定义水平制表实体,但是有一些其他空白字符可用&nbsp,例如; &thinsp;,&ensp;和前述&emsp;.

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

  • 根据**[W3验证器](https://validator.w3.org/nu/#textarea),这不是有效的"XHTML"** (2认同)
  • 我在Swing JTable标题中使用了这个字符串,其中包含String值和HTML箭头类型字符,我需要将此字符作为分隔符.效果很好!谢谢! (2认同)
  • "奇怪的是,html中没有水平标签"并不是所有的奇怪,因为格式一直在从html转移到css,而标签不是视觉元素只是一个格式元素,但很好的答案和很好的解释 (2认同)

san*_*v51 68

以下是HTML提供的3种不同的插入空格的方法

  1. 键入&nbsp;以添加单个空格.
  2. 键入&ensp;以添加2个空格.
  3. 键入&emsp;以添加4个空格.

  • 这个答案实际上回答了这个问题。CSS答案如何标记为答案是愚蠢的。 (8认同)
  • 你也可以添加`;`.喜欢`&nbsp;` (2认同)

Abh*_*oel 67

尝试 &emsp;

它相当于四个&nbsp;.


Gon*_*ght 52

实际上没有任何简单的方法可以在段落的内部(或中间)插入多个空格.那些暗示你使用CSS的人忽略了这一点.你可能并不总是试图从一个方面缩进一个段落,但实际上,试图在它的特定位置放置额外的空格.

实质上,在这种情况下,空间成为内容不是样式.我不知道为什么这么多人看不到.我猜他们试图强制分离样式和内容规则的刚性(HTML设计从一开始就做到了 - 偶尔使用适当的标签定义独特元素的样式而不必花费更多创建CSS样式表的时间,当它适度使用时,绝对没有什么不可读的.还有一些东西可以说是能够快速做某事.)转化为他们只能将空白字符视为仅用于风格和缩进.

当没有优雅的方式来插入空格而不必依赖&emsp;&nbsp;标记时,我会争辩说,如果有一个适当命名的标记可以让你快速插入大量的空格,那么生成的代码就变得难以辨认了. (或者,如果你知道,首先不会毫无必要地消耗空间).

尽管如此,如上所述,您最好的选择是使用&emsp;插入正确的位置.


Sri*_*apu 45

最好使用pre标签.该标签定义预格式化文本.

<pre>
 This is
preformatted text.
It preserves      both spaces

and line breaks.

</pre>
Run Code Online (Sandbox Code Playgroud)

此链接上了解有关预标签的更多信息


小智 41

我在寻找一种方法的过程中遇到了这个问题,并最终找出了我自己的方法,这似乎可以很容易地满足你想要的东西.我是新来发布的,所以我希望这有效...但是在CSS中有这个:

span.tab{
    padding: 0 80px; /* Or desired space*/
}
Run Code Online (Sandbox Code Playgroud)

然后在你的HTML中,这就像我需要的那样是你在句子中的"长标签":

<span class="tab"></span>
Run Code Online (Sandbox Code Playgroud)

从您需要的数量&nbsp;&emsp;您需要的数量中节省.

希望这有助于某人,欢呼!

  • 这将在'span`标签的左侧和80px左侧添加80px,而不是标签. (3认同)

shy*_*.me 19

&emsp;,&ensp;,&#8195;&#8194;可被使用.

W3说......

The character entities &ensp; and &emsp; denote an en space and an em space respectively, where an en space is half the point size and an em space is equal to the point size of the current font. 
Run Code Online (Sandbox Code Playgroud)

在W3.org上阅读更多HTML3

在W3.org上阅读更多HTML4

维基百科甚至更多


rah*_*hul 16

AFAIK,唯一的方法就是使用

&nbsp;
Run Code Online (Sandbox Code Playgroud)

如果你可以使用CSS,那么你可以使用填充或边距.请参阅Box模型,对于Internet Explorer,还要阅读Internet Explorer盒模型错误.


pav*_*ium 9

如果空格变得那么重要,那么使用预格式化的文本和<pre>标签可能会更好.


pei*_*rix 9

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

p:first-letter {
    margin-left: 5em;
}
Run Code Online (Sandbox Code Playgroud)

  • 文本缩进怎么样?<code> p {text-indent:5em} </ code> (3认同)

use*_*236 9

尽管在HTML3中引入,<tab>标签从未进入浏览器.我一直认为这是一个真正的遗憾,因为如果我们能够将它们提供给我们,生活会在许多情况下变得更加容易.但你可以轻松地解决这个问题,给你一个假的<tab>标签.将以下内容添加到HTML的头部或其他(没有样式标记)到CSS中:

<style>
    tab { padding-left: 4em; }
</style>
Run Code Online (Sandbox Code Playgroud)

从那时起,当您需要文档中的选项卡时,将<tab>放在那里.它不是真正的标签,因为它不与标签标记对齐,但它适用于大多数需求,而不必与笨拙的字符实体或跨度抖动.这使得查看源代码变得非常容易,并且可以简单地编写简单的事情,在这种情况下,您不希望遇到表格或其他更复杂的"解决方案"的麻烦.

此解决方案的一个很好的方面是您可以快速搜索/替换文本文档,以使用<tab>标记替换所有TAB.

您可能能够定义一堆真正的绝对位置TAB,然后在需要的地方使用适当的选项卡(例如<tab2>或<tab5>或其他),但我没有找到一种方法来做到这一点,如果没有它缩进后续行.


小智 7

您可以使用表并将width属性应用于第一个<td>.

码:

<table>
    <tr>
        <td width="100">Content1</td>
        <td>Content2</td>
    </tr>
    <tr>
        <td>Content3</td>
        <td>Content4</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

结果

Content1       Content2
Content3       Content4
Run Code Online (Sandbox Code Playgroud)


小智 7

有一个简单的css:

white-space: pre;
Run Code Online (Sandbox Code Playgroud)

它保留您在 HTML 中添加的空格而不是统一它们。


小智 6

如果您使用 CSS,我会建议以下内容:

p:first-letter { text-indent:1em; }

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


小智 6

我使用了一个带有线条样式的跨度.我必须这样做,因为我处理一串纯文本,需要用4个空格(appx)替换\ t.我无法&nbsp;在解释过程中进一步使用,以便最终标记具有非内容空间.

HTML:

<span style="padding: 0 40px">&nbsp;</span>
Run Code Online (Sandbox Code Playgroud)

我在像这样的php函数中使用它:

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


Str*_*cks 5

如果只需要一个选项卡,则以下选项对我有用。

<style>
  .tab {
    position: absolute;
    left: 10em;
   }
</style>
Run Code Online (Sandbox Code Playgroud)

HTML之类的东西:

<p><b>asdf</b> <span class="tab">99967</span></p>
<p><b>hjkl</b> <span class="tab">88868</span></p> 
Run Code Online (Sandbox Code Playgroud)

您可以通过添加其他“标签”样式并更改HTML来添加更多“标签”,例如:

<style>
  .tab {
    position: absolute;
    left: 10em;
   }
  .tab1 {
    position: absolute;
    left: 20em;
   }
</style>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)


Ima*_*lah 5

您可以编写一次,而不是为&nbsp;等于tab 的&emsp;空间编写四次。