在所有浏览器上是否有一个空白的HTML字符(包括没有空格)?

use*_*ca8 17 html cross-browser

是否有一个HTML字符,在所有(主要)浏览器(加上IE8可悲)没有显示任何内容并且不添加任何额外空间?

因此,替代 但不会向页面添加空格,并且不会显示为丑陋的"无法识别的字符"标记或?.


为什么:在我的情况下,我正在尝试解决旧的专有CMS上的问题,该问题正在删除所需的空元素但必需的HTML元素,因为系统的其他部分将动态填充它们.

想象一下(简化的简单示例)<span class="placeholder" data-type="username"></span>,如果用户登录,则填充用户的用户名 - 但是这个老式CMS将其视为空并删除它.

use*_*ca8 33

似乎有两种选择主要适合该法案.它们似乎在a中可靠地不显示任何内容<span>,但它们(特别是第二个选项)在某些情况下可能对复制/粘贴和断字有轻微影响.

零宽度空间

&#8203;aka &#x200B;(与现在在HTML5中)的行为相同<wbr>- 用于使单词在某些点处中断而不更改单词的显示.

<h1>This text is full<span>&#8203;</span> of spans with char<span>&#8203;</span>acte<span></span>rs that affe<span>&#8203;</span>ct word brea<span></span>king but don't show up</h1>
<h1>Especially in das super<span>&#8203;</span>douper&#8203;crazy<span>&#8203;</span>long<span></span>worden.</h1>
Run Code Online (Sandbox Code Playgroud)

似乎在现代浏览器和IE7 +上运行良好(未在IE6上测试).


软连字符

&shy; - 就像一个零宽度的空间,但(理论上)当它在一条线上打破一个单词时添加一个连字符.

<h1>This text is full<span>&shy;</span> of spans with char<span>&shy;</span>acte<span></span>rs that affe<span>&shy;</span>ct word brea<span></span>king but don't show up</h1>
<h1>Especially in das super<span>&shy;</span>douper&shy;crazy<span>&shy;</span>long<span></span>worden.</h1>
<h1>Example where das super&shy;douper&shy;crazy&shy;longword contains no spans.</h1>
Run Code Online (Sandbox Code Playgroud)

在现代浏览器和IE7 +上很好(未在IE6上测试过),但有些评论指出,在复制和粘贴时,这些问题变成了常规连字符,例如,这是在Windows 8.1上从Chrome粘贴到记事本的方式:

在此输入图像描述

在一个范围内,似乎永远不会添加连字符(但如果可能的话,最好使用零宽度空格).


编辑:我发现一个较旧的SO答案讨论这些作为解决不同问题的解决方案,这表明除了可能的复制/粘贴怪癖之外,这些问题都很强大.

我在研究中可以找到的唯一其他问题是,显然一些搜索引擎可能会将包含这些内容的单词视为分裂(例如,awe&shy;some可能匹配搜索awesome不是搜索awesome).

  • 当我从 chrome 直接复制到记事本时,软连字符确实插入了“-”。EN + 美国-国际键盘设置。 (2认同)
  • @user3801433 请参阅http://stackoverflow.com/help/self-answer - 建议您在找到答案时使用它,但它并不容易找到。我的回答可能会帮助其他人,其他人可能知道更好的答案或我的答案存在问题。 (2认同)

Juk*_*ela 7

有两个字符是图形字符,但定义为零宽度:U + 200B ZERO WIDTH SPACE和U + FEFF ZERO WIDTH NO-BREAK SPACE.前者的作用类似于空格字符,因此它是单词之间的分隔符,允许格式化中的换行,而后者明确禁止换行.这取决于你应该使用的目的和背景.在可以在HTML作为表示&#x200b;&#xfeff;.

在大多数浏览情况下,角色都能正常运行 但是,在IE 6中,它们往往被渲染为小矩形,因为IE 6不知道这些字符,并试图将它们渲染为图形字符(缺少字形).

HTML中还允许使用控制字符,例如U + 200E LEFT-TO-RIGHT MARK和U + 200D ZERO WIDTH JOINER.它们没有这样的渲染,尽管它们可能影响图形字符的渲染,例如通过设置书写方向,影响连字行为等.由于这种效果的可能性,将它们用作"虚拟"字符可能是有风险的.