C-0070 Netscape 6/Mozilla でルビを表示する

ここに掲載している情報は間違っている可能性が非常に高いので、信用してはならない。これらの情報を信用してアナタが不利益を被ったとしても、それは全てアナタの責任である。

XHTML 1.1 では、 ruby モジュールが組み込まれたことにより正式にルビ(文字にふりがなをふる機能)が使えるようになりました。しかし実際には、 IE5 が単純ルビに対応している程度だったりして、いまいち役に立ちません。

N6/Moz もルビ非対応のブラウザの一つですが、こいつはユーザースタイルシートが使えるので、以下のような記述を userContent.css に書き加えれば、擬似的にルビを表示できるようになります。

/* 色は親要素を継承 */
ruby, ruby * {
    color: inherit;
    background: transparent;
}
/* 行間を広げる */
ruby {
    position: relative;
    line-height: 2.2;
}
/* rt(ruby text) を上に配置 */
ruby>rt,
rtc {
    position: absolute;
    left: 0;
    top: -1.1em;
    font: 60%/1 sans-serif;
    text-indent: 0;
}
/* 二つ目の ruby text container を下に配置 */
rtc+rtc {
    top: 1.6em;
}
/* 括弧を非表示にする */
rp {
    display:none;
}

完全ではありませんが、これでもそれなりに表示できます。興味のある方は一度試してみてください。

単純ルビの例

<ruby>
  <rb>喧々囂々</rb>
  <rp>(</rp>
  <rt>けんけんごうごう</rt>
  <rp>)</rp>
</ruby>

喧々囂々けんけんごうごう

複雑なルビの例

<ruby>
  <rbc>
    <rb>喧</rb>
    <rb>々</rb>
    <rb>囂</rb>
    <rb>々</rb>
  </rbc>
  <rtc class="reading">
    <rt>けん</rt>
    <rt>けん</rt>
    <rt>ごう</rt>
    <rt>ごう</rt>
  </rtc>
  <rtc class="english" xml:lang="en">
    <rt rbspan="4">clamourous</rt>
  </rtc>
</ruby>

けんけんごうごう clamourous

この Tips は 徒書(2001/8/19) Netscape6/Mozilla でルビ表示 及び Ancient Library 日記(2001/8/24) ルビ用スタイル @ Latest topics を参考にさせていただきました。

キッズ goo では手抜きして rb 要素をマーク付けせずに出力しているとのことで、単純ルビは隣接セレクタの rb+rp+rt, rb+rt ではなく、子セレクタの ruby>rt ( ruby の直接の子要素として rt が存在する場合)に修正しました。情報元:徒書(2001/8/19) Netscape6/Mozilla でルビ表示2