В общем, «контекст форматирования» - это просто область, в которой потоки-потомки определенного типа (например, блок, встроенный, гибкий элемент) выложены (или отформатированы) в обычном потоке.
В CSS2.1 существует только два вида форматирования: block и inline. Оба они описаны как соответствующие в section 9.4. Нет такой вещи, как контекст форматирования таблицы, по крайней мере, не такой, как определено в CSS2.1; вместо этого он просто говорит, что a table box establishes a block formatting context, однако его содержание выложено в табличном виде.
Другие типы контекста форматирования определены в их соответствующих модулях CSS3, поэтому может не быть исчерпывающего списка. Тем не менее, некоторые примеры включают:
- Flexbox: гибкие контейнеры устанавливают контексты форматирования гибкого текста.
- Grid Layout: контейнеры сетки устанавливают контексты форматирования сетки.
ОП опубликовал следующий вопрос, на который я ответил на http://stackoverflow.com/questions/16936297/when-does-a-box-establish-a-inline-formatting-context Если у вас есть время, вы могли бы просмотреть и прокомментировать. Спасибо. –
Контекст таблицы был впервые представлен в разделе [errata] (http://www.w3.org/Style/css2-updates/REC-CSS2-20110607-errata.html#s.9.4) CSS2.1 (в августе 2012), а затем включены в [проект CSS2.2] (https://drafts.csswg.org/css/visuren.html#normal-flow). –
@ Илья Стрельцин: Спасибо, приятно знать. – BoltClock