【发布时间】:2011-05-07 05:36:54
【问题描述】:
— 或 —
这些有区别吗?一个比另一个得到更好的支持吗?
【问题讨论】:
-
为了完整起见:实际的长破折号(“mdash”)字符是:- 并且应该与字符“m”一样宽
-
是的,大写的M
— 或 —
这些有区别吗?一个比另一个得到更好的支持吗?
【问题讨论】:
—::—::\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>
)
}
这将输出:
<div>JSX transcoders will preserve the & character—to protect from possible script hacking and cross-site hacks.</div>
您应该使用 \u2014:而不是 &– 前缀表示:
let text='JSX transcoders will preserve the & character\u2014to …'
【讨论】:
来自W3网站Common HTML entities used for typography
为了可移植性,应保留 Unicode 实体引用以用于确定以 UTF-8 或 UTF-16 字符集编写的文档。在所有其他情况下,应使用字母数字引用。
翻译:如果您正在寻求最广泛的支持,请选择&mdash;
【讨论】:
它们是完全相同的字符。见:http://en.wikipedia.org/wiki/Dash
除非出现浏览器错误,否则它们在所有情况下都会显示相同的内容,因此唯一的区别在于代码可读性,这将指向 &mdash;。
或者,如果您在 HTML 文档中使用 UTF-8 作为字符集,则可以直接输入该字符。这也将显示完全相同。
【讨论】:
&8212; 始终有效,而 &mdash; 取决于已声明实体。
SGML 解析器(或 XHTML 中的 XML 解析器)可以处理 &#8212; 而无需处理 DTD(这对浏览器来说无关紧要,因为它们只是喝标签汤),而 &mdash; 对人类来说更容易在源代码中进行读写。
就个人而言,我会坚持使用文字 em-dash 并确保我的字符编码设置是一致的。
【讨论】:
可能是使用数字代码更通用,因为它是对 html 实体表中字符的直接引用,但我想它们都可以在任何地方使用。对于很多字符来说,第一个符号更容易记住。
【讨论】: