Форматирование текста — средства его изменения, такие как выбор начертания шрифта и использование эффектов, позволяющих менять вид текста. В таблице перечислены основные теги, которые применяются для изменения оформления текста.
| Код HTML | Описание | Пример | 
|---|---|---|
| <b>Текст</b> | Жирный текст | Текст | 
| <i>Текст</i> | Курсивное начертание текста | Текст | 
| <u>Текст</u> | Подчеркнутый текст | Текст | 
| <sup>Текст</sup> | Верхний индекс | e=mc2 | 
| <sub>Текст</sub> | Нижний индекс | H2O | 
| <strike>Текст</strike> | Зачеркнутый текст | |
| <pre>Текст</pre> | Текст пишется как есть, включая все пробелы | Текст | 
| <em>Текст</em> | Курсивный текст | Текст | 
| <strong>Текст</strong> | Жирный текст | Текст | 
Любые теги форматирования текста можно использовать совместно друг с другом. Чтобы сделать текст одновременно жирным и курсивным шрифтом используется сочетание тегов B и I (пример 1). Их порядок в данном случае не важен.
Пример 1. Жирный курсивный текст| "А где же печенье и самогоноваренье?!" - воскликнул Мальчиш-плохиш. | 
Подчеркнутый текст лучше вообще на веб-странице не использовать нигде, кроме ссылок. Подчеркивание давно уже ассоциируется именно со ссылками, поэтому любое его появление без должных на то причин просто обманывает посетителя сайта. Да и читабельность такого текста хуже по сравнению с обычным написанием. Если нужно как-то выделить фрагмент используйте курсивное или жирное начертание.
Использование тегов SUP и SUB сдвигает текст относительно базовой линии и уменьшает размер шрифта. Если нужно еще уменьшить индекс, можно еще добавить тег SMALL (пример 2).
Пример 2. Создание нижнего индекса| Формула серной кислоты: H2SO4 | 
Теги STRONG и EM выполняют те же функции, что теги B и I, но написание последних короче, привычней и удобней.
Следует отметить, что теги B и STRONG, также как I и EM являются не совсем эквивалентными и заменяемыми. Первый тег B — является тегом физической разметки и устанавливает жирный текст, а тег STRONG — тегом логической разметки и определяет важность помеченного текста. Такое разделение тегов на логическое и физическое форматирование изначально предназначалось, чтобы сделать HTML универсальным, в том числе не зависящим от устройства вывода информации. Теоретически, если воспользоваться, например, речевым браузером, то текст, оформленный с помощью тегов B и STRONG, будет отмечен по-разному. Однако получилось так, что в популярных браузерах результат использования этих тегов равнозначен.