趣味Web 小説 2007-04-29

br 要素問題は CSS2.1 で解決か!?

そもそも br 要素は使ってはイケナイの? なんで仕様書に載ってるの? 仕様書に、なるべく使うなとか書いて有るの? HTML4.01 の仕様書には書いてないみたいだけど、XHTML1.0 では、使うの推奨されてないの?

XHTML2 の草案が br 要素退治のアイデアをいろいろ試していたので、一時期、W3C 的に br 要素は廃止したいのかもね、という雰囲気はありました。最近はどーなってるのか知りませんが。

私は p 要素のスタイルとして1行目の1字下げを指定しているので、p 要素中の改行をしないと自分で決めているようなもの(改行すると見た目に難が出る)。引用するときも、勝手に改行を捨ててます。ただ、これは私の好みの問題で、br 要素自体に反対ということではありません。

仕様から br 要素がなくなったら、ガッカリする人の方が多いと思う。それでも br 要素を廃止するとすれば……じつは、いつまで経っても勧告されない CSS2.1 に解決策が。

pre-line

'normal' と同樣,連續する空白類文字は一つにまとめられ,行ボックスが滿たされると必要に應じて行を區切る。

更に行區切りは,ソース文書内での改行位置,生成内容の文字列として "\A" が插入された位置でも行はれる。

br 要素が廃止されるとすれば新仕様ですよね。いくつかのブロックレベル要素の仕様推奨デフォルトスタイルを white-space:pre-line; にするとよさそう。文書型によってデフォルトスタイルを変えるので、過去の資産には影響なし。いかがなものでしょうか?

補足説明

HTML 文書の様々な要素を装飾するのがスタイルシートの役目だと私は考えています。いま CSS2 には既に white-space:pre; というプロパティと値が存在し、IE6 でも実装されています。このスタイル指定を行うと、要素内の改行や空白文字が pre 要素同様に解釈されるのです。

white-space:pre; の存在は、W3C がソース上の改行には表示結果に反映させる意義があると考えている事実を示しています。ソース上の改行は、要素として明示するほどの意義はないが、無意味ではない……とすると、現在 br 要素によって明示されている改行の指示は、ソース上の改行に置き換えて不都合なさそうです。

white-space:pre; は"いろは"の先のCSS第2回の他に使用例を知らず、white-space プロパティは長らくマイナーな存在でした。しかし CSS2.1 で値 pre-line が追加されることにより、超有名プロパティの仲間入りをする可能性があります。

逆リンク!

Information

注意書き