このサイトの管理人、表具師かっぱの日記です。
(新規投稿は出来ませんが、ツッコミは入れられます)
別冊 表具師かっぱの「脱 三日坊主 宣言!」もちまちま更新中
※ 当日記はレイアウトに CSS2 を使用しています ※
(CSS2 未対応のブラウザでも閲覧・投稿は可能です)
なお、IE3 と NN4 は CSS への対応が不完全ですので、設定にかかわらず適用されないようにしています。ご了承下さい。
こちらの記事へツッコミを入れる場合は下のフォームに書いて下さい。
内容が異なる場合はブラウザのバックボタンで戻って下さい。
昨日、良い意味での副作用がありました
と書きましたが、Win版IE6 が標準モードで表示されるようになったおかげで、デザインが微妙に崩れてしまってます。例えば、文字サイズが小さくなってたり、コンテンツリストの幅が1文字分大きくなってたり…。
原因は elements.css と layout.css で使っている UA の振り分け方法です。
文字サイズの指定を例に採りますと、Win版IE5.5 以下と IE6 の後方互換モードでは、標準状態のフォントサイズ(16px)が font-size: small; と一致しているのですが、Web 標準仕様に準拠した UA と IE6 の標準モードでは、font-size: medium; と一致します。そこで振り分けは、以下のような記述で行っています。
body { /* Win版IE4.x 〜 5.x と IE6.0(互換モード) Mac版IE4.x 用の設定 */
font-size: small; /* WinIE4.x 〜 5.x 用の文字サイズ */
font-style : normal;
font-weight: normal;
text-decoration: none;
}
html>body { /* Win版IE4.x 〜 6.0, Mac版IE4.x を除外 */
font-size: medium; /* Web 標準仕様 UA の文字サイズ */
}こうすることで、子セレクタ(html>body)を理解できない Win版IE には font-size: small; が適用され、子セレクタを理解できる UA には、font-size: medium; が適用されます。
ところが、Win版IE6 は、標準モードになっても子セレクタを理解できませんから、font-size: medium; が適用されず、標準のフォントサイズ(16px)よりも1段階小さなフォントで表示されてしまうのです。
これを回避する方法は、Win版IE5.5 以下のみを除外する記述に書き換えるしかありません。今思い付くのは以下のような記述です。
body {
font-size: small; /* WinIE4.x 〜 5.x 用の文字サイズ */
font-style : normal;
font-weight: normal;
text-decoration: none;
voice-family: "\"}\""; /* Win版IE4.x 〜 5.x はこの行の } 以降を無視 */
voice-family: inherit; /* voice-family の値を継承値にもどす */
font-size: medium; /* Web 標準仕様 UA の文字サイズ */
}「Win版IE5.5 以下では、\ によるエスケープを正しく解釈できない」というバグを利用しているのですが、voice-family を踏み台にしているところに少し抵抗を感じます。もうちょっとエレガントな方法は無いのかなぁ?
CSS Comment Bugs
原文: http://www.info.com.ph/~etan/w3pantheon/style/commentbugs.html
拙訳: http://su.que.jp/translations/abmh_ja.html
を試してみて下さい。ただし末尾の Note にあるように、プロパティによっては上手く効かないようです。以下の様な感じでどうでしょうか。body { /* WinIE4.x-6.0, MacIE4.x 用の設定 */
font-size : medium; /* WinIE6専用 (IE4 - 5.5 は次の指定で上書き) */
font-size /* */: small; /* WinIE4 - 5.5 用の文字サイズ */
font-style : normal;
font-weight: normal;
text-decoration: none;
}
html>body { /* WinIE4 - 6.0, MacIE4.x を除外 */
font-size: medium; /* 標準モード用文字サイズ */
}
(2003年09月05日 (金) 01時51分)
申し訳ありません。拙訳の URI が別の文書を指していました。正しくは以下です。
http://su.que.jp/translations/commentbugs_ja.html
(2003年09月05日 (金) 01時55分)
suさん、いつも有難うございます。
お返事が遅くなって申し訳ありません。
お教え頂きましたコメントのバグを利用した振り分けですが、ローカルファイルでのテストは良好でした。
使い方に少し癖が有るようですが、次回の更新時には採用させて頂こうと思います。
(2003年09月09日 (火) 17時51分)
上手くいったようで何よりです。
腰痛とのこと、酷くならないうちに、治して下さい。私は2-3日寝たきりになりました。お大事に。
(2003年09月11日 (木) 01時57分)