Что такое MathML в HTML?
MathML (Mathematical Markup Language) – это язык разметки для отображения математических выражений в веб-страницах. Он является частью стандарта HTML5 и позволяет описывать формулы с помощью тегов, делая их доступными для браузеров, скринридеров и поисковых систем.
Зачем нужен MathML?
MathML используется для:
- Корректного отображения математических формул без изображений.
- Улучшенной доступности (читается скринридерами).
- Машиночитаемости (поисковые системы понимают формулы).
- Универсальности (не зависит от стилей и шрифтов).
Простейший пример MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>a</mi>
<mo>+</mo>
<mi>b</mi>
<mo>=</mo>
<mi>c</mi>
</mrow>
</math>
В этом примере:
<math>
– корневой тег MathML.<mi>
– обозначает переменные.<mo>
– содержит математические операторы.<mrow>
– группирует элементы.
Результат:
a + b = c
Примеры сложных формул
Дробь
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mfrac>
<mi>a</mi>
<mi>b</mi>
</mfrac>
</math>
Результат:
a/b
Квадратный корень
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msqrt>
<mi>x</mi>
</msqrt>
</math>
Результат:
√x
Степень
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
</math>
Результат:
x²
Поддержка браузерами
Браузер | Поддержка MathML |
---|---|
Firefox | Полная |
Safari | Частичная |
Chrome | Отключена по умолчанию |
Edge | Нет поддержки |
Для Chrome и Edge можно использовать MathJax – JavaScript-библиотеку для рендеринга MathML.
Пример подключения MathJax:
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
Альтернативы MathML
Способ | Преимущества | Недостатки |
---|---|---|
MathML | Семантический, доступный, машиночитаемый | Плохая поддержка в Chrome/Edge |
LaTeX (через MathJax) | Гибкость, знаком многим математикам | Требует подключаемых скриптов |
Изображение (PNG, SVG) | Универсальная поддержка | Не машиночитаемо, сложно редактировать |
Итог
MathML – мощный, но не везде поддерживаемый инструмент для отображения формул в HTML. Для кросс-браузерной совместимости рекомендуется использовать MathJax или SVG-графику.