if IE
はてなでは、
<!--[if IE ]> <div class="whisper"><p>現在、Internet Explorer では コンテンツを狙い通りに表示することができません。</p> <p>Internet Explorerユーザの方には、ご不便をおかけいたします。</p> </div> <![endif]-->
と、書くと
<p><!-- --></p>
といった具合に、フィルタされます。
私は、CSSハックは得意でない。(というより得意なものなどないのですが、)
やんごとない事情で、やっぱり、IE6までの、行間を何とかしなくては、という事になる。
現在は、
<ul><li>hatena</li></ul> <ul><li class="hidden"><ul><li>hatena</li></ul></li></ul>
このような書き方をすると、FFとIEで、ライン高が、滅茶苦茶違って表示される。
※ こんな書き方がそもそも、良くないのです。
IEにだけ、有効なスタイルを書きたいけど、どうすればいいか?
CSSの場合、裏技的なハックは、いろいろあるようだけれど、ある日突然、呪文の効能に限界来る事は誰でも予想できるし、いつもは、> を使ったりしていたのだけど、if IE を試してみる事にした。
<!--[if IE]> <style> {literal} ul { margin:0 auto; padding:0 auto; } li { margin:0 auto; padding:0 auto; } li .hidden{ height:0; } {/literal} </style> <![endif]-->
xhtmlで書いていたので、ヘッダーにこんなの入れていたら、lintで引っかかるんだろうな、などと思っていたら、
大きな怒りはなかった。それなら、という事で、追記。(このへんてこなスタイル指定は、出来れば、みられたくないんですが)
めでたく、表示できた。
しかし、ある条件では、IEで、ページが表示できないという現象に出会った。
smarty というテンプレートエンジンを使って、csvを表示させるとき特有のようで、ソースを見ると、途中までは、書き出しているようなのだが、ふっ、と止まる。
$smarty->compile_check = true; //キャッシュしない。デバッグ用
$smarty->debugging = true; //変数表表示
有効にしても、沈黙。
なにをしても、エラーさえ出ないんだから、、、。
if IE をはずすと、表示できるようになった。
私の中では、サーバ側でなにをしても、沈黙。(真っ白)
FFでは、普通に表示できてる。
ブラウザのバグ? それとも、意表をつくスタイル?
ブラウザの職場放棄と見ているのですが、、、どうでしょう。IE6は、黙して語らず。
いずれにしろ、はずして 徒労。