Dan*_*thy 6 html mathml semantic-markup
我一直在使用该<math>元素在 HTML 文件中编写化学方程式。
例如,要显示 MnSO4,我会输入:
<math>
<mi>M</mi>
<mi>n</mi>
<mi>S</mi>
<msub>
<mi>O</mi>
<mn>4</mn>
</msub>
</math>Run Code Online (Sandbox Code Playgroud)
这在语义上正确吗?如果没有,你能推荐一个替代方案吗?
MathML是“一种用于描述数学符号的基于 XML 的语言”。它的开发是因为数学符号需要不止一行印刷符号,因此很难仅用文本来表示。
\n相比之下,化学式始终“仅限于单个印刷符号行,其中可能包括下标和上标”。
\n由于 MathML 用于数学(而不是化学),并且化学公式永远不需要多于一行文本,因此使用HTML 原生的<sup>(上标)和<sub>(下标)元素会更具语义性。
<p>Plants require CO<sub>2</sub> for photosynthesis.</p>Run Code Online (Sandbox Code Playgroud)\r\n如果您需要在语义上记下化学物质的名称,您还可以考虑将其与<abbr>缩写元素结合起来。
<p>Plants require <abbr title="carbon dioxide">CO<sub>2</sub></abbr> for photosynthesis.</p>Run Code Online (Sandbox Code Playgroud)\r\n您还可以考虑使用<i>惯用文本来抵消其他文本中的化学方程式。该元素用于表示“由于某种原因与正常文本不同的一系列文本,例如惯用文本、技术术语、分类名称等”。
<p>Hydrogen and oxygen can combine to form water: <i>2H<sub>2</sub> + O<sub>2</sub> \xe2\x86\x92 2H<sub>2</sub>O</i></p>Run Code Online (Sandbox Code Playgroud)\r\n