我知道现代浏览器删除了大多数空间字符和'& nbsp';内部人物一个段落元素。但有没有办法让浏览器不删除空格?
可能使用CSS属性或HTML文档类型?
或许我最后的办法是使用javascript将每4个空格字符转换为标签?
我想要显示的文字示例:
<p>There should be gaps of 4 chars tween each word</p>
如果我唯一的选择是Javascript;你可以告诉我,我的正则表达式是否会使用“_”字符正确地更改任何“”字符(出现两次或更多次)?
var p = document.getElementById("myP");
var con = p.innerHTML;
con = con.replace("[ ]{2,}", "_");
p.innerHTML = con;
答案 0 :(得分:4)
使用<pre>
标签是否有任何理由不合适?因为这听起来像你需要的。
输出(将您的内容包含在<pre></pre>
标记中):
There should be gaps of 4 chars tween each word
此外,<pre>
标签仍然可以设置样式。
答案 1 :(得分:1)
您可以在CSS中使用white-space: pre-wrap
;现代浏览器(不是IE 7)是supported。它允许自动换行,但使用
可以防止它,所以你需要使用普通空格,除非要防止换行。
根据上下文和目的,如果你真的只想增加单词之间的间距,那么在CSS中使用word-spacing
可能会更好。
从技术上讲,现代浏览器不会忽略不间断空格;他们只是崩溃任何空白序列,就像浏览器一直做的那样,并将不间断空格计为空格,这是新的。
答案 2 :(得分:0)
它可以消除崩溃的空白区域,并且浏览器更有效地在每个单词周围放置一个范围,然后使用以下CSS:
#myP span {
display: inline-block;
margin-right: 2em; /* or put the amount of space in pixels */
}
......就像这样:
<p id="myP"><span>There</span><span>should</span>be</span><span>gaps</span></p>
这也使得以后调整或更改间距变得更加容易,因为您可以只修改CSS中的间距,而不是添加或删除大量的&amp; nbsp's。