« 研究発表 | メイン | Japanese Only は必要か »

2003年12月22日

ライン要素に関するメモ [XHTML2]



XHTML 2.0のライン要素(The l element)についてだが、私はてっきりbr要素が変形しただけのただの物理要素だと思い込んでいた。しかし原文をよく見返してみると、The l element represents a semantic line of text.ともあるように、わりとセマンティックな要素らしい。


意味的な行要素というのがいまいちピンとこないが、ドラフトには“コンピュータコード”や“詩”のマークアップに用いられるとのこと。Basic系などのプログラミング言語では改行が重要な意味を持つので、それには一応納得できる。


しかし「コンピュータコードと詩」と聞いて、ぱっと思いつくのは “pre要素” と新しく提案された “blockcode要素” である。それらは慣習的にpre要素によってマーク付けされていたし、今後はbloclcode要素も大いに用いられるだろう。それらを用いずして、わざわざ物理的概念寄りな“行”という名を冠した要素を使うだろうか。手間の面でも、毎行毎行ライン要素をマーク付けしていくほうがより煩雑な作業である事は議論に値しない。


で、ライン要素を用いるメリットはというと、例文にも挙げられているが CSS2 の counterプロパティ との相性がひどく良い。



1: Option Explicit
2
3: Private Sub Form_Load()
4: dim Greet as string
5: Greet = "Hello World"
6: MsgBox Greet
7: End Sub


このように、CSSを用いてプログラムコード行番号を付けることができる。


l要素はblockquoteとquoteの関係のように、blockcode要素のインライン版とも考えてみたが、あいにくそのポジションにはcode要素という先輩がいる。やはり意味を持たない行要素と捉える方が良いらしい。となると、blockcodeとl要素を共存させるマーク付けにしてみたらどうだろうか。



<blockcode>
<l> Option Explicit</l>
<l></l>
<l> Private Sub Form_Load()</l>
<l> dim Greet as string</l>
<l> Greet = "Hello World"</l>
<l> MsgBox Greet</l>
<l> End Sub</l>
</blockcode>


プログラムコード群をグループ化するのなら、p要素よりもこちらのほうが意味的にも妥当だろう。blockcodeはデフォルトで改行してくれるが、わざわざこうやって明示しても問題は無いはずだ。個人的にはblockcodeで済ませると思うが。


すると、物理的な用途のために(例えばaddress要素内での改行)ライン要素を使うことは間違いなのだろうか。だんだんよくわからなくなってきた。


ところでl要素における、white-saceプロパティのデフォルト値は何なんだろう。nowrapでも別におかしくないような気もするが。改行された時点で“行”では無くなるし。まあ、“セマンティックな行”なのだから、恐らく途中で自動折り返しが入っても問題無いのだろうけれど。ちなみにドラフトには Whether the line should wrap or not depends on styling properties of the element.とある。


どうやら説明を読む限りでは display: block では無いらしい。どちらかというと



l:before{ content: "\a" }
l:after{ content: "\a" }


というかたちに近いのではなかろうか。ちなみにこれをOperaでやると、2行分改行が開いてしまったけれども。


投稿者 : 00:00 | コメント (0) | トラックバック (0)

トラックバック

このエントリーのトラックバックURL:
http://totora.jpn.org/mt/mt-tb.cgi/248

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)