【问题标题】:Do I really need to use ascii codes in html for & < > % etc我真的需要在 html 中为 & < > % 等使用 ascii 代码吗
【发布时间】:2013-06-04 22:43:33
【问题描述】:

这个问题很简单,是那些“总是觉得太愚蠢而不能问”的问题之一。我现在正在将很多方程式写成表格并尽职尽责地使用......

     "N/mm&sup2; &gt; 5&#37;" etc 

想知道我们到底为什么要这样做?我被教导并且一直都有,但似乎 %、& 和 > 等的纯文本(当然是上标)在所有浏览器中都呈现得很好。这只是为了避免与标记和内联脚本等冲突,还是仅使用纯 html/css 时还有其他原因?

【问题讨论】:

  • 因此,您需要转义三个字符,并且需要在属性中转义两个字符(有时)。如果您不将文件保存为 UTF-8,则需要转义除大约 200 个字符之外的所有字符。
  • 它不是重复的,因为我显然知道哪些字符需要转义 - 我问为什么我们转义它们,因为它似乎对我测试过的任何浏览器中的渲染没有实际影响 - Chrome、Firefox、Safari、IE、Opera。
  • I was taught to 是的,也许是从 utf-8 不那么流行的时候开始的?和你一样,这些天我看不出任何意义。
  • 最好不要偷懒,要靠事情的发展。正是这种想法让我们有很多公司被困在使用超级旧的 IE 版本。不要成为 20 年后所有人都讨厌的人。

标签: html css ascii


【解决方案1】:

在示例情况下,根据规范或实践,不需要任何&amp; 符号。你可以写

N/mm² > 5%

(就 HTML 而言;作为物理符号,这是不合适的)。

如果您不知道如何在键盘上输入“²”(或如何复制和粘贴它),或者如果您的文档的字符编码不允许它显示为这样,那么您需要使用@987654323 @ 表示法。

HTML 规范对使用 &amp; 符号的要求有所不同,但它们都不需要任何其他字符,除了 &lt;&amp; 之外,"' 很少见当它们出现在属性值中并且在值周围使用 sama 字符作为分隔符时的情况(应该很明显为什么它必须被“转义”)。

在实践中,&lt;&amp; 需要被转义,否则它们将被解析为标记的一部分,或者在您使用真正的 XHTML(即 XHTML 以 XML 媒体类型提供服务)的罕见情况下),在这种情况下,它们的出现将是格式正确的错误,并会导致浏览器显示错误消息并完全拒绝显示文档。

例如,a &lt; b 在 HTML 语法规则(不是 XHTML)和浏览器中是可以的,但 a&lt;b 将被解析,因此 &lt;b 将被视为开始一个 &lt;b&gt; 标记,从而造成很大的混乱。即使a&lt;z 也会搞砸,因为由于浏览器解析 HTML 的方式,&lt;z 仍会被解析为标签的开头,即使目前 HTML 中没有以 z 开头的标签名称。

【讨论】:

  • 谢谢你 - 一个精彩的解释
【解决方案2】:

您不必必须这样做,因为大多数主流浏览器都会按原样解析这些字符,但它也可能在以后的代码中引起问题。附带说明一下,某些浏览器要求您使用这些。

如果我是你,我会使用 ASCII 码。

【讨论】:

  • 您能否举几个简单的例子来解释它会如何导致代码问题或需要它们的浏览器?
猜你喜欢
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2014-05-14
  • 1970-01-01
  • 2011-10-24
  • 2015-07-19
相关资源
最近更新 更多