<ruby>
<rb>夥</rb>
<rp>(</rp><rt>おびただ</rt><rp>)</rp>
</ruby>
とW3Cの"Ruby Annotation"勧告では不必要に思われる
<rp>
タグを使用するのも其の為である旨、記述されているのですが、
それにしても説明の為の例文
<rb>夥</rb>
<rp>(</rp><rt>おびただ</rt><rp>)</rp>
</ruby>
いい話はなしだ。は秀逸な登用ですので、一度ご覧いただければと思います。
此れを受け小飼弾氏が自ブログで利用している記事が2006年5月31日 css - ルビもCSSで で問題解決を提示しておられ、 其の解決法として採用されているのが北村曉氏のサイトで 曉に死す のブログ 徒書 でCSSのinline-table属性を用いたルビ表示の考案がなされている2001年10月11日付の記事 Mozillaでルビ表示3 での手法です。
スポンサーリンク
ruby {
display:inline-table;
text-align:center;
white-space:nowrap;
text-indent:0;
margin:0;
vertical-align:-20%;
}
/* ルビベース */
ruby>rb,ruby>rbc {
display:table-row-group;
line-height:90%;
}
/* 前側ルビテキスト */
ruby>rt,ruby>rbc+rtc {
display:table-header-group;
font-size:60%;
line-height:40%;
letter-spacing:0;
}
/* 後側ルビテキスト */
ruby>rbc+rtc+rtc {
display:table-footer-group;
font-size:60%;
line-height:40%;
letter-spacing:0;
}
/* 複雑ルビテキスト */
rbc>rb,rtc>rt {
display:table-cell;
letter-spacing:0;
}
rtc>rt[rbspan] {
display:table-caption;
}
/* ルビ括弧 */
rp {
display:none;
}
display:inline-table;
text-align:center;
white-space:nowrap;
text-indent:0;
margin:0;
vertical-align:-20%;
}
/* ルビベース */
ruby>rb,ruby>rbc {
display:table-row-group;
line-height:90%;
}
/* 前側ルビテキスト */
ruby>rt,ruby>rbc+rtc {
display:table-header-group;
font-size:60%;
line-height:40%;
letter-spacing:0;
}
/* 後側ルビテキスト */
ruby>rbc+rtc+rtc {
display:table-footer-group;
font-size:60%;
line-height:40%;
letter-spacing:0;
}
/* 複雑ルビテキスト */
rbc>rb,rtc>rt {
display:table-cell;
letter-spacing:0;
}
rtc>rt[rbspan] {
display:table-caption;
}
/* ルビ括弧 */
rp {
display:none;
}
まずは単純ルビを書いてみる。「彼は悪行を小飼弾氏が上記を参考に2006年5月31日の記事の自ブログで利用しているのが恣 にした」。CSS2のinline-tableを使うと、ルビテキストが右隣の本文にオーバーハングせずに中央揃えされ、よりルビらしい表示になった。 一方、複雑ルビではどうか。「さんはいい人だった」と書いてみるが、inline-tableを使った表示ではルビつきテキスト部分が上にずれた表示になってしまう。しかし「 斎 藤 信 男 さんは真面目な人だ」と後側ルビがなければ結構まともに表示されている。各rbとrtも対応付けられているし。 斎 藤 信 男
inline-tableを使った表示の利点の一つは、画像がルビベースにあるときも画像が欠けずに表示されることだ。例えば「」のように。
ruby {
display:inline-table;
text-align:center;
white-space:nowrap;
text-indent:0;
margin: 0;
vertical-align:-15%;
}
/* ルビベース */
ruby>rb,ruby>rbc {
display:table-row-group;
text-align:center;
/* line-height:90%; */
}
/* 前側ルビテキスト */
ruby>rt,ruby>rbc+rtc {
display:table-header-group;
font-size:70%;
line-height:30%;
letter-spacing:0;
text-align:center;
}
/* 後側ルビテキスト */
ruby>rbc+rtc+rtc {
display:table-footer-group;
font-size:70%;
line-height:30%;
letter-spacing:0;
text-align:center;
}
/* 複雑ルビテキスト */
rbc>rb,rtc>rt {
display:table-cell;
letter-spacing:0;
text-align:center;
}
rtc>rt[rbspan] {
display:table-caption;
text-align:center;
}
/* ルビ括弧 */
rp {
display:none;
}
display:inline-table;
text-align:center;
white-space:nowrap;
text-indent:0;
margin: 0;
vertical-align:-15%;
}
/* ルビベース */
ruby>rb,ruby>rbc {
display:table-row-group;
text-align:center;
/* line-height:90%; */
}
/* 前側ルビテキスト */
ruby>rt,ruby>rbc+rtc {
display:table-header-group;
font-size:70%;
line-height:30%;
letter-spacing:0;
text-align:center;
}
/* 後側ルビテキスト */
ruby>rbc+rtc+rtc {
display:table-footer-group;
font-size:70%;
line-height:30%;
letter-spacing:0;
text-align:center;
}
/* 複雑ルビテキスト */
rbc>rb,rtc>rt {
display:table-cell;
letter-spacing:0;
text-align:center;
}
rtc>rt[rbspan] {
display:table-caption;
text-align:center;
}
/* ルビ括弧 */
rp {
display:none;
}
まずは単純ルビを書いてみる。「彼は悪行をで基本的には全体に text-align:center; を付加しているのが見て取れます。恣 にした」。CSS2のinline-tableを使うと、ルビテキストが右隣の本文にオーバーハングせずに中央揃えされ、よりルビらしい表示になった。 一方、複雑ルビではどうか。「さんはいい人だった」と書いてみるが、inline-tableを使った表示ではルビつきテキスト部分が上にずれた表示になってしまう。しかし「 斎 藤 信 男 さんは真面目な人だ」と後側ルビがなければ結構まともに表示されている。各rbとrtも対応付けられているし。 斎 藤 信 男
inline-tableを使った表示の利点の一つは、画像がルビベースにあるときも画像が欠けずに表示されることだ。例えば「」のように。
また北村曉氏が多くの閲覧を被った上で ルビ表示はユーザスタイルシートで! に公開されたCSSが主にOperaへの対応と思われる調整が施された下記になります。
ruby {
display:inline-table !important;
text-align:center !important;
white-space:nowrap !important;
text-indent:0 !important;
margin:0 !important;
vertical-align:-25% !important;
line-height:1 !important;
}
ruby>rb,ruby>rbc {
display:table-row-group !important;
line-height:1.2 !important;
}
ruby>rt,ruby>rbc+rtc {
display:table-header-group !important;
font-size:60% !important;
line-height:1.2 !important;
letter-spacing:0 !important;
}
ruby>rbc+rtc+rtc {
display:table-footer-group !important;
font-size:60% !important;
line-height:1 !important;
letter-spacing:0 !important;
}
rbc>rb,rtc>rt {
display:table-cell !important;
letter-spacing:0 !important;
}
rp {
display:none !important;
}
基本的に下記3点に関する修正が施されているとのことです。
display:inline-table !important;
text-align:center !important;
white-space:nowrap !important;
text-indent:0 !important;
margin:0 !important;
vertical-align:-25% !important;
line-height:1 !important;
}
ruby>rb,ruby>rbc {
display:table-row-group !important;
line-height:1.2 !important;
}
ruby>rt,ruby>rbc+rtc {
display:table-header-group !important;
font-size:60% !important;
line-height:1.2 !important;
letter-spacing:0 !important;
}
ruby>rbc+rtc+rtc {
display:table-footer-group !important;
font-size:60% !important;
line-height:1 !important;
letter-spacing:0 !important;
}
rbc>rb,rtc>rt {
display:table-cell !important;
letter-spacing:0 !important;
}
rp {
display:none !important;
}
- 製作者スタイルを上書きできるよう !important を追加。
- line-height を単位なしの数値で指定。
- rbspan属性つきのrt要素をそれらしく表示するワザは通用しなくなったようなので削除。
まずは単純ルビを書いてみる。「彼は悪行を上記を小飼氏が参照し作成したCSSが2006年6月1日の記事 css - ルビの理想と現実 にて紹介される下記にて恣 にした」。CSS2のinline-tableを使うと、ルビテキストが右隣の本文にオーバーハングせずに中央揃えされ、よりルビらしい表示になった。 一方、複雑ルビではどうか。「さんはいい人だった」と書いてみるが、inline-tableを使った表示ではルビつきテキスト部分が上にずれた表示になってしまう。しかし「 斎 藤 信 男 さんは真面目な人だ」と後側ルビがなければ結構まともに表示されている。各rbとrtも対応付けられているし。 斎 藤 信 男
inline-tableを使った表示の利点の一つは、画像がルビベースにあるときも画像が欠けずに表示されることだ。例えば「」のように。
ruby {
display:inline-table !important;
text-align:center !important;
white-space:nowrap !important;
text-indent:0 !important;
margin:0 !important;
vertical-align:-21% !important;
line-height:1 !important;
}
ruby>rb,ruby>rbc {
display:table-row-group !important;
line-height:1.0 !important;
}
ruby>rt,ruby>rbc+rtc {
display:table-header-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
ruby>rbc+rtc+rtc {
display:table-footer-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
rbc>rb,rtc>rt {
display:table-cell !important;
letter-spacing:0 !important;
}
rp {
display:none !important;
}
display:inline-table !important;
text-align:center !important;
white-space:nowrap !important;
text-indent:0 !important;
margin:0 !important;
vertical-align:-21% !important;
line-height:1 !important;
}
ruby>rb,ruby>rbc {
display:table-row-group !important;
line-height:1.0 !important;
}
ruby>rt,ruby>rbc+rtc {
display:table-header-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
ruby>rbc+rtc+rtc {
display:table-footer-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
rbc>rb,rtc>rt {
display:table-cell !important;
letter-spacing:0 !important;
}
rp {
display:none !important;
}
まずは単純ルビを書いてみる。「彼は悪行をと、微調整に留めている様です。恣 にした」。CSS2のinline-tableを使うと、ルビテキストが右隣の本文にオーバーハングせずに中央揃えされ、よりルビらしい表示になった。 一方、複雑ルビではどうか。「さんはいい人だった」と書いてみるが、inline-tableを使った表示ではルビつきテキスト部分が上にずれた表示になってしまう。しかし「 斎 藤 信 男 さんは真面目な人だ」と後側ルビがなければ結構まともに表示されている。各rbとrtも対応付けられているし。 斎 藤 信 男
inline-tableを使った表示の利点の一つは、画像がルビベースにあるときも画像が欠けずに表示されることだ。例えば「」のように。
扠、この一連のエントリの後、数年を経た2008年のこと、 FireFox3のリリースを受け、同ブラウザにてルビの表示の崩れるのを見た小飼氏が、 新たに修正を施した詳細が2008年7月15日付 CSS - ルビ再び なるエントリに記されるのは以下コードを引用すれば
ruby {
display:inline-table !important;
text-align:center !important;
white-space:nowrap !important;
text-indent:0 !important;
margin:0 !important;
vertical-align:text-bottom !important;
line-height:1 !important;
}
ruby>rb,ruby>rbc {
display:table-row-group !important;
line-height:1.0 !important;
}
ruby>rt,ruby>rbc+rtc {
display:table-header-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
ruby>rbc+rtc+rtc {
display:table-footer-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
rbc>rb,rtc>rt {
display:table-cell !important;
letter-spacing:0 !important;
}
rp {
display:none !important;
}
display:inline-table !important;
text-align:center !important;
white-space:nowrap !important;
text-indent:0 !important;
margin:0 !important;
vertical-align:text-bottom !important;
line-height:1 !important;
}
ruby>rb,ruby>rbc {
display:table-row-group !important;
line-height:1.0 !important;
}
ruby>rt,ruby>rbc+rtc {
display:table-header-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
ruby>rbc+rtc+rtc {
display:table-footer-group !important;
font-size:71% !important;
line-height:1.0 !important;
letter-spacing:0 !important;
}
rbc>rb,rtc>rt {
display:table-cell !important;
letter-spacing:0 !important;
}
rp {
display:none !important;
}
まずは単純ルビを書いてみる。「彼は悪行をとされ、固より北村氏の作成ファイルの秀逸なれば、 粗全面的採用の上で、IE以外へのルビの適用について基本的事項を纏められるに恣 にした」。CSS2のinline-tableを使うと、ルビテキストが右隣の本文にオーバーハングせずに中央揃えされ、よりルビらしい表示になった。 一方、複雑ルビではどうか。「さんはいい人だった」と書いてみるが、inline-tableを使った表示ではルビつきテキスト部分が上にずれた表示になってしまう。しかし「 斎 藤 信 男 さんは真面目な人だ」と後側ルビがなければ結構まともに表示されている。各rbとrtも対応付けられているし。 斎 藤 信 男
inline-tableを使った表示の利点の一つは、画像がルビベースにあるときも画像が欠けずに表示されることだ。例えば「」のように。
とあり、上記赤字部分は5.の実装となり、 2.で言及されるに依って、前回の中途半端とも思える71%なる数値の事由が理解されます。
- rubyタグ全体を、inline-tableとして扱う
- rb、rt、rbc、rtcといった要素は、その中のcellとして扱う
- rtおよびrtcは、小さく表示する。ここでは71%。これは面積比で半分、すなわち1/√2の近似値としている、
- rpは非表示に
- これをruby要素の外の文字と底が一致するよう配置する
今となって此れ等を追い掛けさせていただくだけで自らのCSSについてのスキル補強となり、 檜山氏、小飼氏、北村氏の三氏には改めて感謝申し上げたいと思います。
北村氏も一連の記事の脈絡中で語られていますように、 Mozzlla系の表示上の問題に対応したCSS3普及迄の一時的対応ですので、 最後にIEでの表示例として上記のクロスブラウザ対策のなされていないプレーンなソースを下記に表示させ、 上の一連の表示とブラウザを取り替え乍の比較に供したいと思います。
まずは単純ルビを書いてみる。「彼は悪行を恣 にした」。CSS2のinline-tableを使うと、ルビテキストが右隣の本文にオーバーハングせずに中央揃えされ、よりルビらしい表示になった。 一方、複雑ルビではどうか。「さんはいい人だった」と書いてみるが、inline-tableを使った表示ではルビつきテキスト部分が上にずれた表示になってしまう。しかし「 斎 藤 信 男 さんは真面目な人だ」と後側ルビがなければ結構まともに表示されている。各rbとrtも対応付けられているし。 斎 藤 信 男
inline-tableを使った表示の利点の一つは、画像がルビベースにあるときも画像が欠けずに表示されることだ。例えば「」のように。