它们都表示空间,但有区别吗?


当前回答

当有换行符时,当你使用$bnsp;因为这是一个“非中断空间”。如果你有特定的产品名称,这可能很重要,总是应该写在一起。

如果您(必须)在数字中使用空格作为分隔符,比如12344567,在法国显示为12344567,这可能会很有趣。没有了线就会断在中间的数字,很难看。测试:12 344 567

其他回答

,是可堆叠的,这意味着您可以一起创建多个空间。

HTML只会解析一个空格,其余的都省略了……

如果你想要5个空格,你可以放5个x  

TLDR;除了接受的答案之外;一个是隐式的,一个是显式的。

当你编写的或由应用程序/库/框架生成的HTML被你的浏览器读取时,它会尽力解释你的HTML的意思(这可能因浏览器而异)。当您使用HTML实体代码时,您将更加特定于浏览器。您显式地告诉它您希望向用户显示一个字符(而不是您只是为了让开发人员更容易阅读而分隔HTML)。

更具体地说,如果输出HTML是:

<html>
   <title>hello</title>
   <body>
       <p>
           Tell me and I will forget. Teach me and I
           may remember.  Involve me and I will learn.
       </p>
   </body>
</html>

浏览器只会在所有这些单词之间显示一个空格(甚至是那些为了更好的可读性而缩进的单词)。

然而,如果你放入同样的东西,只是将<p>标记更改为:

<p>Hello&nbsp;&nbsp;&nbsp;There</p>

然后它会呈现空间,就像你明确指示的那样。有一些使用这些空间进行样式化的历史。随着CSS的成熟,这种用法已经有所减少。然而,仍然有许多HTML字符实体的有效用途:避免意外/无意的解释(例如,如果你想显示代码)。w3有一个很棒的页面来显示其他字符代码。

,应该作为空白处理。

,,应该作为两个空白处理吗

' '可以作为一个无意义的空格处理

' + ' '可以作为单个' '处理

除了这里的其他答案外,非间断空格不会像常规空格那样被“折叠”。例如:

<!——都是——> < p > Word1 Word2 < / p > <!——和——> < / p > < p > Word1 Word2 <!——将在任何浏览器上呈现相同的效果——> <!—下图在渲染时保留空格。--> < p > Word1&nbsp;,,,,, Word2 < / p >

@Zoidberg是对的, 例子:

<h1>title</h1> <h2>date</h2>

是否会在标题标记之间不显示空格

& nbsp ; 

将做空格:)