h2v.js、 ver 2.2.0 になりました。
Webページで縦書きレイアウトを実現する JavaScript、"h2v.js" をアップデート。
2012.10.29 ::
ケアレスミスを修正した ver 2.2.1 がダウンロード可能です。
(この記事の下の方に書いた RBC / RTC タグの不具合はまだ残っています)
ケアレスミスを修正した ver 2.2.1 がダウンロード可能です。
(この記事の下の方に書いた RBC / RTC タグの不具合はまだ残っています)
まずは大きな不具合の解消が二点。
【表示領域の幅を超えるサイズの画像などの表示を改善】
これが問題になってくるのは主に、
これまでは、表示領域の幅を超えるサイズの分割不可能な要素(IMG や PRE や TABLE など)が縦書きエリアに存在する場合は、h2v.js が処理し切れずに無限ループに陥っていました。
ver 2.2.0 では、これを改善。
- スマホからのアクセス時に、ページ幅が制限されたスマホ専用ページを表示する
これまでは、表示領域の幅を超えるサイズの分割不可能な要素(IMG や PRE や TABLE など)が縦書きエリアに存在する場合は、h2v.js が処理し切れずに無限ループに陥っていました。
ver 2.2.0 では、これを改善。
- 画像は自動的に縮小して表示します。
- 幅固定の PRE、TABLE は、幅を自動的に調整して、エリア内部に収めようとします。
- 幅固定で、幅を自動調整することが不適切と思われる要素(CANVASなど)は、サイズはそのまま、エリアをはみ出して表示されます。
【ルビの表示を改善】
2012.10.29 追記::
デスクトップ版 Safari の一部のバージョン(Windows最新版を含む)で、IE 同様に、RBC / RTC タグが効かない、という不具合を確認しました。
対応してみますが、縦書き / 横書きに関わらず、RBC / RTC タグは使用しない方が安全です。
<ruby><rb>〜</rb><rt>〜</rt></ruby> …という形の、通常のルビは正常に表示されます。
デスクトップ版 Safari の一部のバージョン(Windows最新版を含む)で、IE 同様に、RBC / RTC タグが効かない、という不具合を確認しました。
対応してみますが、縦書き / 横書きに関わらず、RBC / RTC タグは使用しない方が安全です。
<ruby><rb>〜</rb><rt>〜</rt></ruby> …という形の、通常のルビは正常に表示されます。
あまりそんな機会はないのかもしれませんが、
さらに、
なので、IE8 / IE9 での縦書き表示では、もう面倒なので
このため、IE とそれ以外のブラウザでは、ルビのレイアウトが若干異なります。
- RB または RT タグ内に半角英数字が含まれている場合にレイアウトが乱れる
さらに、
- IE8 では RBC / RTC タグをDOM要素として認識しないっぽい。
- IE8 / IE9 では、RB / RT タグにサイズ関係のスタイルが上手く適用されないっぽい。
なので、IE8 / IE9 での縦書き表示では、もう面倒なので
- RBC / RTC タグは機能しません。
- RB / RT タグは、縦書きルビのスタイルを適用した SPAN に自動的に置換。
このため、IE とそれ以外のブラウザでは、ルビのレイアウトが若干異なります。
そして、その他の変更点。
【行末の処理を変更】
従来は、「一行に指定した文字数ピッタリの文字列 + <br />」 というのを縦書きに変換すると、<br /> が次の行に送られて、見た目空白の行がひとつ挿入されていました。
ver 2.2.0 では、これを解消。IE8 以外では、無駄な空行が入らなくなりました。IE8 だけは処理が面倒なのでゴメンナサイです。
ver 2.2.0 では、これを解消。IE8 以外では、無駄な空行が入らなくなりました。IE8 だけは処理が面倒なのでゴメンナサイです。
これまでは「全てのブラウザで、ほぼ同じレイアウトを実現する」というポリシーでやっていたので、"ダメな子にレイアウトを合わせる" ことを最重要視していたのだけれど、ルビの件もあるし、IE8 はもうこの辺りでいいかな…ということで、こんな感じです。
細かい部分で差異が残るだけで、もちろん IE 8上でもきちんと縦書き表示できますのでね。
【縦書きエリアを指定する div に visibility:hidden を設定しておくと…】
ページロード → 縦書き変換実行 → 終了したら h2v.js が当該エリアを自動的に visibility:visible に変更 → あたかも最初から縦書きだったかのように見える!
…という機能を追加してみました。ただしこれ、ページを見にきてくれた人が JavaScript をオフにしていた場合、真っ白な領域が表示されるだけで何も見えない、という状況に陥りますので、注意が必要です。
ダウンロードは → こちらから。
いままでお使いの人は、今までの h2v-min.js と h2v.css を最新のものに入れ替えるだけです。新たな設定は必要ありません。
しかしファイルサイズがでかくなってきた。何とかしたい。
コメント