transform未対応ブラウザでも縦書きレイアウトを保つ。

ということで、「CSS3のtransformを使った縦書きレイアウト用スタイルシート」を紹介しているのです。

  → 縦書きWebページプロジェクト (http://freefielder.jp/tate/ )

ところがコレは、transform未対応のブラウザでは、当然のように綺麗な縦書きになりません。長音記号「ー」が横に寝たままのかたちで表示されたり、括弧たちが横書き字形のままで表示されたり。

その不具合を解消するために、transform未対応ブラウザで閲覧したときは、transformでフォントを回転させることを諦めて、強制的に「横字形→縦字形」に文字を置換してしまうJavaScriptを書いてみた。

以下 'tate_replace.js' のソース。

こいつを 'tate_replace.js' という名前のファイルに保存したら、縦書きCSSを使っているhtmlファイルのヘッダ部分で、
<html>
  <head>
    <script type="javascript" src="tate_replace.js"></script>
  …
  </head>
…なんて感じで読み込んでやればOKです。

内容は、
transform未対応ブラウザ( Firefox3.5未満、Opera10.5未満、Safari3未満 )、またはバージョン6未満のInternet Explorerでアクセスしてきた場合に、originalSet で定義されている横字形を、対応する縦字形( replaceSetで定義 )に置換する。
というもの。

これを使えば、ブラウザ互換性がさらにアップする筈。

アクセスしてきたブラウザのバージョン番号を取得するスクリプトは、以下のページ

  → お手軽 ブラウザバージョン判定 - latest log

を参考にさせて頂きました。

カテゴリ: