use*_*ca8 17 html cross-browser
是否有一个HTML字符,在所有(主要)浏览器(加上IE8可悲)没有显示任何内容并且不添加任何额外空间?
因此,替代 但不会向页面添加空格,并且不会显示为丑陋的"无法识别的字符"标记或?.
为什么:在我的情况下,我正在尝试解决旧的专有CMS上的问题,该问题正在删除所需的空元素但必需的HTML元素,因为系统的其他部分将动态填充它们.
想象一下(简化的简单示例)<span class="placeholder" data-type="username"></span>,如果用户登录,则填充用户的用户名 - 但是这个老式CMS将其视为空并删除它.
use*_*ca8 33
似乎有两种选择主要适合该法案.它们似乎在a中可靠地不显示任何内容<span>,但它们(特别是第二个选项)在某些情况下可能对复制/粘贴和断字有轻微影响.
​aka ​(与现在在HTML5中)的行为相同<wbr>- 用于使单词在某些点处中断而不更改单词的显示.
<h1>This text is full<span>​</span> of spans with char<span>​</span>acte<span></span>rs that affe<span>​</span>ct word brea<span></span>king but don't show up</h1>
<h1>Especially in das super<span>​</span>douper​crazy<span>​</span>long<span></span>worden.</h1>Run Code Online (Sandbox Code Playgroud)
似乎在现代浏览器和IE7 +上运行良好(未在IE6上测试).
­ - 就像一个零宽度的空间,但(理论上)当它在一条线上打破一个单词时添加一个连字符.
<h1>This text is full<span>­</span> of spans with char<span>­</span>acte<span></span>rs that affe<span>­</span>ct word brea<span></span>king but don't show up</h1>
<h1>Especially in das super<span>­</span>douper­crazy<span>­</span>long<span></span>worden.</h1>
<h1>Example where das super­douper­crazy­longword contains no spans.</h1>Run Code Online (Sandbox Code Playgroud)
在现代浏览器和IE7 +上很好(未在IE6上测试过),但有些评论指出,在复制和粘贴时,这些问题变成了常规连字符,例如,这是在Windows 8.1上从Chrome粘贴到记事本的方式:
在一个范围内,似乎永远不会添加连字符(但如果可能的话,最好使用零宽度空格).
编辑:我发现一个较旧的SO答案讨论这些作为解决不同问题的解决方案,这表明除了可能的复制/粘贴怪癖之外,这些问题都很强大.
我在研究中可以找到的唯一其他问题是,显然一些搜索引擎可能会将包含这些内容的单词视为分裂(例如,awe­some可能匹配搜索awe而some不是搜索awesome).
有两个字符是图形字符,但定义为零宽度:U + 200B ZERO WIDTH SPACE和U + FEFF ZERO WIDTH NO-BREAK SPACE.前者的作用类似于空格字符,因此它是单词之间的分隔符,允许格式化中的换行,而后者明确禁止换行.这取决于你应该使用的目的和背景.在可以在HTML作为表示​和.
在大多数浏览情况下,角色都能正常运行 但是,在IE 6中,它们往往被渲染为小矩形,因为IE 6不知道这些字符,并试图将它们渲染为图形字符(缺少字形).
HTML中还允许使用控制字符,例如U + 200E LEFT-TO-RIGHT MARK和U + 200D ZERO WIDTH JOINER.它们没有这样的渲染,尽管它们可能影响图形字符的渲染,例如通过设置书写方向,影响连字行为等.由于这种效果的可能性,将它们用作"虚拟"字符可能是有风险的.
| 归档时间: |
|
| 查看次数: |
37388 次 |
| 最近记录: |