使用 <math> 标签编写化学方程式在语义上正确吗?

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)

这在语义上正确吗?如果没有,你能推荐一个替代方案吗?

Sea*_*ean 9

MathML是“一种用于描述数学符号的基于 XML 的语言”。它的开发是因为数学符号需要不止一行印刷符号,因此很难仅用文本来表示。

\n

相比之下,化学式始终“仅限于单个印刷符号行,其中可能包括下标和上标”。

\n

由于 MathML 用于数学(而不是化学),并且化学公式永远不需要多于一行文本,因此使用HTML 原生的<sup>(上标)<sub>(下标)元素会更具语义性。

\n

\r\n
\r\n
<p>Plants require CO<sub>2</sub> for photosynthesis.</p>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

如果您需要在语义上记下化学物质的名称,您还可以考虑将其与<abbr>缩写元素结合起来。

\n

\r\n
\r\n
<p>Plants require <abbr title="carbon dioxide">CO<sub>2</sub></abbr> for photosynthesis.</p>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

您还可以考虑使用<i>惯用文本来抵消其他文本中的化学方程式。该元素用于表示“由于某种原因与正常文本不同的一系列文本,例如惯用文本、技术术语、分类名称等”。

\n

\r\n
\r\n
<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
\r\n
\r\n

\n