2003年5月 - マーク付けノート

2003-05-15

(´-`).。oO CSS で content の内容に文字参照を入れたい場合はどうしたらいいんだろう。Opera ではうまくいったけど、Mozilla ではダメだったよ…

うーんしかし…。試しに p:after { content : """ } とか p:after { content : """ } とか p:after { content : """ } とかやってみたけど、Mozilla はもちろんの事、 Win 版 Opera6.05 でも MacOSX 版 Opera6.0 でも無効だなぁ。

いやもう、Opera なんて持ってないし、Mozilla でも試してないけどぴんときまくりですよ。察するに text/html で style 要素の内容に文字参照を書いたんじゃないでしょうか?

HTML4 では、style 要素の中の文字は全て単なる文字データとして扱われることになっています。つまり、<style type="text/css"> p:after { content:"&#9829;"; } </style> などと記述しても、各段落の末尾に &#9829; という文字列が付加されるだけです。ちなみに、XHTML では style 要素の内容も通常の PCDATA として解釈されるので、こういう記述をすれば段落末尾に が付加されることになります。

# ただし、文書型が XHTML であっても text/html で serve している場合には、style 要素の内容が文字データと解釈されても致し方ない面がありまして、僕の記憶が確かならば Mozilla なんかは MIME で style の解釈を切り分けていたはずです。

# ちなみに対処方法は、「CSS のエスケープを使う」で良いと思います。

この文書のステータス

URI
http://www.satoshii.org/markup/notes/2003/05
初版
2003-05-15
最終更新
2003-11-10
著者
石川哲志
Copyright © 2003 Satoshi ISHIKAWA, All Rights Reserved.