`—`或`—`HTML输出有什么不同吗?

Ada*_*han 79 html ascii

— 要么 —

这些之间有区别吗?一个比另一个更好的支持?

Que*_*tin 84

SGML解析器(或XHTML情况下的XML解析器)可以处理—而无需处理DTD(这对于浏览器来说无关紧要,因为它们只是标记汤),而—人类更容易在源代码中读写.

就个人而言,我会坚持使用文字em-dash并确保我的字符编码设置是一致的.


RoT*_*oRa 13

它们是完全相同的角色.请参阅:http://en.wikipedia.org/wiki/Dash

除了浏览器错误,他们将在所有情况下显示相同的内容,因此唯一的区别在于代码可读性,这将指向—.

或者,如果您在HTML文档中使用UTF-8作为字符集,则可以直接输入字符.这也将显示完全相同.

  • 请注意,这仅适用于HTML,在XML中,`&8212;`始终有效,而`—`取决于已声明实体. (5认同)

wrl*_*lee 5

—:: —::\u2014

在JavaScript文本字符串中表示m-dash以输出到HTML时,请注意它由unicode值表示.有些情况下,&符号('&')将无法解析 - 特别是JSX中的某些上下文.在这种情况下,既—不会也—不会奏效.相反,您需要使用Unicode转义序列:\u2014.

例如,在实现render()从JavaScript变量输出文本的方法时:

render() {
   let text='JSX transcoders will preserve the & character—to ' 
            + 'protect from possible script hacking and cross-site hacks.'
   return (
     <div>{text}</div>
   )
}
Run Code Online (Sandbox Code Playgroud)

这将输出:

<div>JSX transcoders will preserve the & character&mdash;to protect from possible script hacking and cross-site hacks.</div>
Run Code Online (Sandbox Code Playgroud)

而不是&- 前缀表示,你应该使用\ u2014:

let text='JSX transcoders will preserve the & character\u2014to …'
Run Code Online (Sandbox Code Playgroud)

  • 与 React 配合得很好。 (2认同)