代码之家  ›  专栏  ›  技术社区  ›  Midhat

HTML中的呈现选项卡字符[重复]

  •  10
  • Midhat  · 技术社区  · 15 年前

    这个问题已经有了答案:

    我必须把一些文本呈现到网页上。文本来自我无法控制的源,它使用换行符和制表符进行格式化。

    新品系 (\n) 可替换为 br 标签,但是保存标签呢?一个简短的搜索显示没有办法在html中直接呈现tab字符。

    6 回复  |  直到 10 年前
        1
  •  1
  •   Rippo    11 年前
    replace \t with      
    

    你想要的每个空间都是  

    正如所指出的,这并不是完全正确的,因为它只是假装成一个标签 HTML 实际上并不像您所期望的那样输出制表符格式。

        2
  •  13
  •   Matt    15 年前

    为什么不把内容包装成 <pre> 标签?这将处理 \n 以及 \t 字符。

        3
  •  7
  •   user320398    15 年前

    另一个不间断的空间是em空间( &emsp; &#x2003; )如果这是一个优势,它通常被渲染为一个更长的空间。

        4
  •  1
  •   deceze    15 年前

    如果您已经在替换换行符,为什么不对制表符执行相同的操作…?

    str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;', $text);
    
        5
  •  1
  •   shyammakwana.me    11 年前

    &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. 
    

    Read More at W3.org fro HTML3

    Read More at W3.org for HTML4

    更在 Wikipedia (关于空间)

        6
  •  0
  •   Carl Smith kyle k    10 年前

    廉价方式

    你可以使用 xmp 标记以停止浏览器执行空白操作。这个 XMP 标记只是呈现其中的原始文本。什么都没变。 小精灵 从html3.2开始,标记就被弃用了,并且现在已经从html5规范中删除了,但是所有的浏览器仍然支持它们,这是不可能改变的。

    适当方式

    使用HTML表格。字符串中的制表符只创建表。制表符用于制表数据。字符串中的每一行都是表中的新行,每一行中的每个选项卡都会启动一个新单元格。

    Spam    1.99
    Cheese  2.99
    
    <table>
        <tr> <td> Spam   </td> <td> 1.99 </td> </tr>
        <tr> <td> Cheese </td> <td> 2.99 </td> </tr>
    </table>
    

    如果需要,可以将表的样式设置为纯文本。