XSL-FO 組版と CSS 組版の違い


最近スタック・オーバーフローに [xsl-fo](/questions/tagged/xsl-fo "'xsl-fo' のタグが付いた質問を表示")
関連のご質問が投稿されており、XSL Formatting Objects について知りました。

しかし Wikipedia にある説明を読むに、XSL-FO 組版のやり方は CSS
組版のやり方と殆ど同じなのではないか、と思えてきました。そして、両者の違いについて興味が湧きました。たとえば Wikipedia の ["XSL
Formatting Objects"](https://ja.wikipedia.org/wiki/XSL_Formatting_Objects)
には以下のように書かれています。

> XSL-FOとCSSは、良く似ている概念を採用しているが、いくつかの違いもある。 ブロックとインライン要素の概念は、CSSと非常に良く似ている。 間隔
> (padding) と余白 (margin) の規則のいくつかは、CSSと異なる。 表記方向 (direction) に関しては、XSL-FO
> ではページの特性に沿って全て指定することができる。 _(2018年4月23日閲覧)_

XSL-FO と CSS のどちらを採用するか判断するための材料として、こういった違いは重要そうです。そこで、質問です。

組版をするにあたり、XSL-FO と CSS の "表現力" は同等ですか？
つまり、一方では〇〇という組み方ができるものの、他方ではそれを行う方法が無い、あるいは難しいといったことはありますか？
必要であれば、両者の規格のバージョンを適当に設定して頂いて構いません。




参照されている、Wikipedia にありますように、その生い立ちが

「XSL-FOは、複数のページで構成される媒体を想定して設計された。一方HTMLとCSSは、ページの概念が無い媒体 （コンピュータ画面など）
を想定して設計されている。」

という違いがあります．

CSSもwikipedia にありますように、

「表示媒体（モニターや
TV、紙媒体など）によって自動的にスタイルシートを変更できるようにし、それに附随して音声ブラウザへの対応、印刷媒体への対応が行われ、フォントなどの表示機能の拡張や、ボックスの概念の修正などが行われた。」

と、印刷媒体への対応も進められていますが、その仕様は、まだドラフトやそれ以前の状態であったりします．

このような状況ですので、組版の対象媒体が何なのか、によってその仕様も含めて向き不向きがあるように思います．




参照されている、Wikipedia にありますように、その生い立ちが

「XSL-FOは、複数のページで構成される媒体を想定して設計された。一方HTMLとCSSは、ページの概念が無い媒体 （コンピュータ画面など）
を想定して設計されている。」

という違いがあります．

CSSもwikipedia にありますように、

「表示媒体（モニターや
TV、紙媒体など）によって自動的にスタイルシートを変更できるようにし、それに附随して音声ブラウザへの対応、印刷媒体への対応が行われ、フォントなどの表示機能の拡張や、ボックスの概念の修正などが行われた。」

と、印刷媒体への対応も進められていますが、その仕様は、まだドラフトやそれ以前の状態であったりします．

このような状況ですので、組版の対象媒体が何なのか、によってその仕様も含めて向き不向きがあるように思います．

