Skip to content

Unsupported CSS features and workarounds

The writeHtml engine renders content in one forward pass and never re-lays out earlier content. Some Cascading Style Sheets (CSS) behaviors do not fit that model. This page lists the specific behaviors the engine does not apply and gives you a supported workaround for each one. For per-module verification status, read the CSS support matrix.

These limitations are bounded and are not a roadmap. Each entry names the exact unsupported behavior, not the whole property.

BehaviorWhat is not appliedWorkaround
position: absolute / position: relative offset layoutThe engine places boxes in document order. The top/right/bottom/left offsets that move a positioned box out of normal flow are not applied. Static positioning works.Use tables or flex in normal flow for placement.
Named grid-template-areasThe engine does not implement placement by named grid areas. Explicit line-based grid placement works.Place items with explicit grid lines, or use a table.
rowspan across a page break (degraded)A rowspan cell renders on one page. When the table paginates, a spanning cell that crosses the page boundary fragments as described in Architectural Decision Record (ADR-007), and a cell too tall to split raises UnsplittableContentException.For grouped rows that must stay intact during pagination, use a float or category-header row instead of a tall rowspan.
overflow: hidden background paint-orderoverflow: hidden does not change the background paint-order, and it does not clip a child’s background to an ancestor’s rounded or sized box.Apply the background to the element that owns the clip, or avoid relying on clipped backgrounds.
Side-by-side wrapping prose in a flex itemA flex item with wrapping prose overflows its track instead of wrapping within the track.Use a two-column table with explicit pixel column widths.
Percentage column width that resolves to zeroWhen a % column width has no resolvable basis, it parses to 0 and triggers the column-squeeze warning.Give side-by-side columns explicit pixel widths.