拙作の UserJS を紹介していただいてありがとうございます。
Opera 9.50 から実装された新しい CSS プロパティ -o-table-baseline でベースラインがきれいに揃うようになりました。それに伴い UserJS と UserCSS もそれを利用するように変更しましたので一度お試しください。一応 UserCSS だけでも rbspan 以外はちゃんと表示されるようになりました。
2007年12月10日 (月) 04:55:52
XHTML 1.0 には目を瞑ってもらうとして、例えば、
<ruby>
<rb>陰摩羅鬼</rb>
<rp>(</rp><rt>おんもらき</rt><rp>)</rp>
</ruby>
のような単純ルビは、UserCSS を適用することによって割と仕様書に近い形で再現することができる。僕は北村さんのドキュメントを参考に次のようなCSSを書いてみた。
/** ルビスタイル **/
ruby {
display:inline-table;
text-align:center;
white-space:nowrap;
text-indent:0;
vertical-align:-30%;
line-height:1;
}
ruby>rb,ruby>rbc {
display:table-caption;
caption-side:bottom;
line-height:1.2;
}
ruby>rt,ruby>rbc+rtc {
display:table-caption;
caption-side:top;
font-size:60%;
line-height:1;
}
ruby>rbc+rtc+rtc {
display:table-caption;
caption-side:top;
font-size:60%;
line-height:1;
}
rp {
display:none;
}
適用するとこんな感じ。
![]()
しかし、
<ruby>
<rbc>
<rb>陰</rb>
<rb>摩</rb>
<rb>羅</rb>
<rb>鬼</rb>
</rbc>
<rtc>
<rt>おん</rt>
<rt>も</rt>
<rt>ら</rt>
<rt>き</rt>
</rtc>
<rtc>
<rt rbspan="4">今昔続百鬼巻之中</rt>
</rtc>
</ruby>
といった後側ルビ付きの複雑ルビ
の表示が上手く再現できなかった。

このように、ベーステキスト
とルビテキストコンテナ
が意図した順番に表示されないのだ。ちなみに、次のような UserJS もあって、
このうちHTMLでも A なら期待に近い形で表示されるんだけど、

できればこういうのは UserCSS だけでなんとかしたいなぁと思う今日この頃。やっぱり無理なのかな。 » そんなことはない
さっきの北村さんのドキュメントでも言及されていたけど、ページ制作者がサイトのCSSにルビスタイルを定義するのはあんまりよろしくない。でも、よろしくないと言ってもやる人はやるだろうから、そのうちデコボコでアレなページに遭遇するかもしれない。そんな時、通常はCtrl+W Shift+G を押したり別ブラウザで開くところを、以下のようなUserCSSを用意しておくことにより、まるで何事もなかったかのように閲覧できる(はず)。
/** ルビスタイルを無効 **/
ruby,rbc,rtc,rb,rp,rt {
display: inline !important;
margin: 0 !important;
padding: 0 !important;
color: black !important;
background: none !important;
font-style: normal !important;
font-variant: normal !important;
font-weight: normal !important;
font-family: none !important;
font-stretch: normal !important;
font-size-adjust: none !important;
line-height: normal !important;
text-align: left !important;
vertical-align: baseline !important;
text-indent: 0 !important;
text-decoration: none !important;
letter-spacing: normal !important;
word-spacing: normal !important;
text-transform: none !important;
white-space: normal !important;
text-shadow: none !important;
}
/** ルビのフォントサイズ: 好みで変える **/
rt,rp {
font-size: xx-small !important;
}
やりすぎ。background: none とか font-family: none とかって何だよ。
Kurumaさんが書いてくれました。なるほど。
投稿者:芦塚 | 投稿日時: 2006年 10月20日(金) 16:15 | カテゴリ: Opera
拙作の UserJS を紹介していただいてありがとうございます。
Opera 9.50 から実装された新しい CSS プロパティ -o-table-baseline でベースラインがきれいに揃うようになりました。それに伴い UserJS と UserCSS もそれを利用するように変更しましたので一度お試しください。一応 UserCSS だけでも rbspan 以外はちゃんと表示されるようになりました。
2007年12月10日 (月) 04:55:52
芦塚
さっそく試させていただきました。
お、ちゃんときれいに揃ってますね。全く違和感なくルビ表示されてます。素晴らしい。
こうなると、UserJS と UserCSS どちらを採用するか迷うところだな。
2007年12月10日 (月) 14:24:44
コメントスパム対策のため、以下に該当するコメントはブロックされるかもしれません。
ブロックされた場合はエラーページが表示されますが、入力された情報(コメント内容)は失われます。あらかじめご了承下さい。