.imageblock{
-webkit-column-break-inside:avoid !important;
-moz-break-inside:avoid !important;
break-inside:avoid !important
}
<div id="図1" class="imageblock">
<div class="content">
<img src="./figs/12_1_15-fig1.png" alt="12 1 15 fig1">
</div>
<div class="title">図1 宗教活動の実践頻度</div>
</div>
このようにページを跨いでレンダリングされてしまいます。
もちろん画面の大きさによっては大丈夫ですが、サイズを(悪く)調整するとこの現象が生じます。
分かれてしまった要素それぞれに break-inside: avoid が適用されてないようですが、
そもそもHTML のレベルで別々の div に 分解されてしまっているので小手先で後処理もできない状況です。
vivliostyle.js に要素をページ跨ぎさせたくないことをどうやって伝えればよいでしょうか。
環境など:- https://github.com/vivliostyle/vivliostyle-ui/tree/master/dist の latest release と latest development の2つを HTML のビューワから試した- Google Chrome バージョン 49.0.2623.87 m- Windows 10まだ試しに使い始めたばかりで、初歩的な質問失礼します。今、画像とそのキャプションのようにページ跨ぎさせたくない要素があります。ドキュメント(http://vivliostyle.com/en/documentation/supported-features/) を見ると、 break-inside: avoid がサポートされているようですので、https://css-tricks.com/almanac/properties/b/break-inside/ を参考にブラウザプレフィックスをつけて、
.imageblock{
-webkit-column-break-inside:avoid !important;
-moz-break-inside:avoid !important;
break-inside:avoid !important
}としてみました。対応するHTMLは
<div id="図1" class="imageblock">
<div class="content">
<img src="./figs/12_1_15-fig1.png" alt="12 1 15 fig1">
</div>
<div class="title">図1 宗教活動の実践頻度</div>
</div>のようになっています。生のHTMLについてはブラウザのコンソールから要素に対してCSSが割り当たっていることが確認できました。しかし、Vivliostyle を通してみてみると、
このようにページを跨いでレンダリングされてしまいます。
もちろん画面の大きさによっては大丈夫ですが、サイズを(悪く)調整するとこの現象が生じます。