仅使用 HTML 标记的下标和上标对齐
Subscript and superscript alignment using only HTML markup
使用latex渲染软件可以轻松制作出下图:
特别是上标和下标部分是一个在另一个之上。
是否可以巧妙地使用 <sup>
和 <sub>
标记,而仅使用 HTML 4 语法而不使用 CSS 或 MathML 来获得相同的结果?
不,仅使用 HTML.
不可能同时为元素添加下标和上标
不过,使用CSS,还是有解决办法的。如需灵感,请查看 this thread.
编辑: Source.
<sub>
The HTML Subscript Element (<sub>
) defines a span of text that should be displayed, for typographic reasons, lower, and often smaller, than the main span of text.
[...]
The <sup>
HTML element that produces superscript. Note that you cannot
use them both at the same time and you need to use MathML to produce
both a superscript and a subscript next to the chemical symbol of an
element, representing its atomic number and its nuclear number.
另请注意同一页面中关于 <sub>
的以下评论:
This element should be used for typographical reasons only, i.e.
changing the position of the text changing its meaning like in
mathematical (like t2, though the use of a MathML formula should be
considered) or chemical formulas (like H2O).
您可以尝试这种方式(不是最好的,但可以):
a<sup>2</sup><sub style='position: relative; left: -.5em;'>i</sub>
补充一下,这并不意味着您可以同时使用下标和上标。它只是一种使用 style 标签创建的幻觉。这会改变并且跨浏览器不可靠。
您只需在 style
属性中添加一个参数即可获得它,尽管 不应再使用内联样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sub and sup inline</title>
</head>
<body>
T<sup>j<sub>1</sub>,...,j<sub>h</sub></sup><sub
style="margin-left:-35px">i<sub>1</sub>,...,i<sub>k</sub></sub>
</body>
</html>
(Fiddle)。相反,如果您可以在 head
中使用 style
标记并在 body
中使用 class
(推荐),您将通过以下方式获得与上述相同的输出:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sub and sup class</title>
<style>.fixmargin{margin-left:-35px}</style>
</head>
<body>
T<sup>j<sub>1</sub>,...,j<sub>h</sub></sup><sub
class="fixmargin">i<sub>1</sub>,...,i<sub>k</sub></sub>
</body>
</html>
更好:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sub and sup span</title>
</head>
<body>
T<span style="position:relative">
<span style="position:absolute;left:2px;top:-9px">j<sub>1</sub>,...,j<sub>h</sub></span>
<span style="position:absolute;left:2px;top:8px">i<sub>1</sub>,...,i<sub>k</sub></span>
</span>
</body>
</html>
但是,同样,这可以(并且应该)通过 head
中的 style
标记和 span
中的三个 class
属性来实现。
使用latex渲染软件可以轻松制作出下图:
特别是上标和下标部分是一个在另一个之上。
是否可以巧妙地使用 <sup>
和 <sub>
标记,而仅使用 HTML 4 语法而不使用 CSS 或 MathML 来获得相同的结果?
不,仅使用 HTML.
不可能同时为元素添加下标和上标不过,使用CSS,还是有解决办法的。如需灵感,请查看 this thread.
编辑: Source.
<sub>
The HTML Subscript Element (
<sub>
) defines a span of text that should be displayed, for typographic reasons, lower, and often smaller, than the main span of text.[...]
The
<sup>
HTML element that produces superscript. Note that you cannot use them both at the same time and you need to use MathML to produce both a superscript and a subscript next to the chemical symbol of an element, representing its atomic number and its nuclear number.
另请注意同一页面中关于 <sub>
的以下评论:
This element should be used for typographical reasons only, i.e. changing the position of the text changing its meaning like in mathematical (like t2, though the use of a MathML formula should be considered) or chemical formulas (like H2O).
您可以尝试这种方式(不是最好的,但可以):
a<sup>2</sup><sub style='position: relative; left: -.5em;'>i</sub>
补充一下,这并不意味着您可以同时使用下标和上标。它只是一种使用 style 标签创建的幻觉。这会改变并且跨浏览器不可靠。
您只需在 style
属性中添加一个参数即可获得它,尽管 不应再使用内联样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sub and sup inline</title>
</head>
<body>
T<sup>j<sub>1</sub>,...,j<sub>h</sub></sup><sub
style="margin-left:-35px">i<sub>1</sub>,...,i<sub>k</sub></sub>
</body>
</html>
(Fiddle)。相反,如果您可以在 head
中使用 style
标记并在 body
中使用 class
(推荐),您将通过以下方式获得与上述相同的输出:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sub and sup class</title>
<style>.fixmargin{margin-left:-35px}</style>
</head>
<body>
T<sup>j<sub>1</sub>,...,j<sub>h</sub></sup><sub
class="fixmargin">i<sub>1</sub>,...,i<sub>k</sub></sub>
</body>
</html>
更好:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sub and sup span</title>
</head>
<body>
T<span style="position:relative">
<span style="position:absolute;left:2px;top:-9px">j<sub>1</sub>,...,j<sub>h</sub></span>
<span style="position:absolute;left:2px;top:8px">i<sub>1</sub>,...,i<sub>k</sub></span>
</span>
</body>
</html>
但是,同样,这可以(并且应该)通过 head
中的 style
标记和 span
中的三个 class
属性来实现。