ルビと<span>のネスト

 前回( ゼン クワイ )、<span>を使( ツカ )つてルビの實裝( ジツ サウ' )をしたが、個人的( コ ジン テキ )事情( ジ ジヤウ' )で、<span>のネストを()けたくなつた。それは、<span>がネストすることで、終了( シユウ' レウ )タグの檢索( ケン' サク )が、自作( ジ サク )ツールからほんのちよつと面倒( メン タウ )になることだ。(プロから()れば( ワラ )はれるぐらゐのわづかな面倒( メン タウ )さではある。)

 ( ワタクシ )は、この日記( ニツ キ )()くときに、いちいち本文( ホン ブン )直接( チヨク セツ )ルビを()ることはしない。本文( ホン ブン )( ソウ' )ルビを()ることを手作業( テ サ ゲフ )でやつてゐたら、とても片手間( カタ テ マ )日記( ニツ キ )など()けない。それに、ルビを()つた( アト )本文( ホン ブン )なんて、わづらはしいタグだらけで、とても、推敲( スイ カウ )なんてできない。

 したがつて、自作( ジ サク )ツールで、()假名( ガ ナ )のデータベースからルビをつけたり、本文( ホン ブン )からルビを( ハヅ )したりする操作( サウ サ )何度( ナン ド )( オコ )なつてゐる。このとき、同一名( ドウ' イツ メイ' )のタグがネストしてゐるとツールの内部( ナイ ブ )で、餘分( ヨ ブン )なスタックが必要( ヒツ エウ )になり、( コノ )ましくない状況( ジヤウ' キ'ヤウ' )( シヤウ' )じる。span.ruby()しとして、span.rt と span.rpを( ホカ )要素( エウ ソ )代替( ダイ タイ )できないか檢討( ケン' タウ )した。

 ここで、テキストを對象( タイ シヤウ' )にしたインライン要素( エウ ソ )をあげる。(http://www.w3.org/TR/html4/)

  • <em>: 強調( キヤウ' テウ )
  • <strong>: より( ツヨ )強調( キヤウ' テウ )
  • <cite>: 引用( イン ヨウ' )
  • <dfn >: 定義( テイ' ギ )
  • <code>: コンピュータコード
  • <samp>: プログラムサンプル
  • <kbd >: キーボードテキスト
  • <var >: 變數( ヘン スウ )引數( ヒキ スウ )
  • <abbr>: 短縮語( タン シユク ゴ )
  • <acronym>: 頭字語( トウ ジ ゴ )

 このなかで、意味的( イ ミ テキ )()假名( ガ ナ )として使( ツカ )へさうなのは、<em><strong><dfn >あたりだが、しかし、()假名付( ガ ナ フ )文字( モ ジ )強調表示( キヤウ' テウ ヘウ ジ )定義内( テイ' ギ ナイ )使( ツカ )はれることもあり、やはり同一( ドウ' イツ )タグのネスト問題( モン ダイ )()きる。

 つぎに檢討( ケン' タウ )したのが以下( イ カ )( フタ )つだ。

  • <sup >: 上付( ウハ ツ )文字( モ ジ )
  • <sub >: 下付( カ フ )文字( モ ジ )

 <sup >は意味的( イ ミ テキ )には( チガ )ふが、表示的( ヘウ ジ テキ )()假名( ガ ナ )( チカ )いし、上付( ウハ ツ )文字( モ ジ )のなかに( サラ )()假名( ガ ナ )使( ツカ )ふことはないだらう。代替用( ダイ タイ ヨウ' )のタグとして<sup >を採用( サイ ヨウ' )して、スタイルシート定義( テイ' ギ )してみた。

span.ruby { position:relative; line-height:2.2em; }
span.ruby sup.rt { position:absolute; left:0; top:-1.1em; font:normal 50%/1 "MS PGothic",sans-serif; text-decoration:none; text-indent:0; }
span.ruby sup.rp { display:none; }

<span class=ruby

<sup class=rp>(</sup>
<sup class=rt>ヱン/sup>
<sup class=rp>)</sup>
</span>

 ただ、sup.rtの場合( バ アヒ )どうしても、文字( モ ジ )サイズや位置( ヰ チ )部分( ブ ブン )を<sup >要素( エウ ソ )のデフォルトから複雜( フク ザツ )()()いでをり、ブラウザによる調整( テウ セイ' )( ムヅカ )しいので、結局( ケツ キヨク )は、<span>だけでルビを表現( ヘウ ゲン )するといふ正攻法( セイ' コウ ハフ )( モド )す。そして、自作( ジ サク )ツールもその方向( ハウ' カウ' )( ツク )()へる。