HTML中不可折叠但仍然(行)可拆分的空格? 我在HTML中可以使用什么,如果我希望在中间的空格看起来像三个空格,但是如果行太长,仍然可以被打破?

HTML中不可折叠但仍然(行)可拆分的空格? 我在HTML中可以使用什么,如果我希望在中间的空格看起来像三个空格,但是如果行太长,仍然可以被打破?,html,whitespace,Html,Whitespace,常规空格会被折叠(一系列空格看起来与单个空格相同),并且在非分隔空格处不能分隔行 更新:我想我真正想要的是一个仍然可以打断长行的标记(我需要显示源代码)。两个,后跟一个常规空格怎么样?唯一的缺点(据我所知)是,如果换行符自然落在常规空格处,由于非换行空格,前一行会有一点尾随空格,但我认为这不会对页面的实际外观产生任何影响。如果您(标准模式8除外): 对于IE,在怪癖模式下工作,所以合并它们并 <span style="width:3ex;white-space:pre-wrap">

常规空格会被折叠(一系列空格看起来与单个空格相同),并且在非分隔空格处不能分隔行


更新:我想我真正想要的是一个仍然可以打断长行的
标记(我需要显示源代码)。

两个
,后跟一个常规空格怎么样?唯一的缺点(据我所知)是,如果换行符自然落在常规空格处,由于非换行空格,前一行会有一点尾随空格,但我认为这不会对页面的实际外观产生任何影响。

如果您(标准模式8除外):


对于IE,
在怪癖模式下工作,所以合并它们并

<span style="width:3ex;white-space:pre-wrap">   </span>


这似乎在我尝试的任何地方都有效。。。除了IE7标准。哦

一个或多个em空间(&emsp;)怎么样?当然,这取决于用户的字体大小。如果这在你的设计中并不奏效,那么考虑一下EN空间(& EnP)。


你可能还想看看维基百科。

两个不间断空格之间的空格不起作用吗


怎么样?

最好退一步,问问你想渲染什么。这个额外的大空间意味着什么?

它使文本之间的左边空间有100像素 空格示例

span style=“左边距:100px;”


(n_n)

事实上,我有你想要的确切答案。我到处寻找这个答案,任何人的建议都不完美。所以,我想出了一个解决方案,并尝试了它,但它没有任何缺陷

事实上他是对的(他只是没有解释,也没有完全接受)。解决方案不是单独放置
,而是放置
。只需执行简单的搜索,然后在每个
之后替换并添加
标记。很好用

标记是所有主流浏览器都支持的一个鲜为人知的标记,它告诉浏览器仅在需要时才在此处放置换行符

更新:我发现一款浏览器在IE 8中无法正常工作!他们居然拿出了
标签!我通过创建一个类解决了这个问题,该类说:

.wbr:在{content:“\200B”之前
替换为
,而不是将其替换为以下内容:


在PHP中,这看起来像:

$text=str\u replace(“,”,$text);
也不要忘记添加类

显然,这有点过分了,用所有这些替换了一个空格,但它确实按照预期工作,因为我从来没有看到它对我有用的标记

如果这太混乱,另一种解决方案是将双空格替换为
,后跟一个普通空格。这将交替使用
和普通空格,并在我的测试中起作用

在PHP中,这看起来像:

$text=str\u replace(“,”,$text);

希望这有帮助!我对此做了足够的研究;我想我应该把它传下去。

理论上,所有这些都应该由一致性代理(HA!)折叠成规则的空间。如果规范希望它们折叠,它们有什么好处?但幸运的是,浏览器似乎没有遵循规范的这一部分。我只是希望每个人都有相应的字体。事实上,这应该是可行的。HTML中“空白”的定义故意排除U+2002 EM空间。有趣的。。。尽管如此:“本规范并未指明空格字符的行为、呈现或其他方式,但此处明确标识为空白字符的字符除外。”。比如说,四年后,我们的公司客户将进行更新……请将浏览器支持页面的链接放回原处,这是neatI想要一个保留原始缩进(但仍包裹长线)的预标记。如果这一段长度使该行末尾出现的两个单词中的第一个之间存在差异,或者下一个的开始,因为您仍然在它的末尾填充一个非中断空间,使它比拆分机制“更长”。而且,即使没有,并且在它们之间中断,下一行的单词也会以空格开头,这也不应该发生。嘿,这是一个很好的答案。它工作得很好。我必须这样做的电子邮件模板解决方案。很好,回答得很好。今天学习了
<span style="width:3ex;white-space:pre-wrap">   </span>