遊星ゲームズ
FrontPage | RSS


クロスブラウザ対策おぼえがき
 日記

 ほぼ自分用おぼえがきです。間違ってる可能性も大いにあります(ぉ
 要件は

  • できる限りwebスタンダード
  • クロスブラウザ的な
  • 文字サイズ可変な
  • <ruby>を使う(重要)

 いまこのサイトのトップページで、Another HTML-lint98点です。それはそれで、このチェックに特化しちゃってる気がするけど。
 クロスブラウザのほうは……わりとてきとう(笑)

  • ちゃんと書く
     あたりまえ(ぉ
  • XHTML1.1
     <ruby>はこれでしか許されません。
  • でもXHTML1.1を正しく扱う方法はない
     IEはDOCTYPE宣言を1行目でしか解釈しない。しかしXHTML1.1の1行目はxml宣言を入れなければならない。そしてDOCTYPE宣言がないときのIEはへなちょこ互換モード(orz。
     正しくないけどいちおう、xml宣言しないという方法はあります。
     UTF-8かUTF-16の場合に限り、xml宣言が必須ではないらしいです(ただし強く推奨と書いてあるけど)。
     というわけで、現在このサイトは互換モードで表示されてるはず。
     まあXHTML1.0strict(xml宣言ナシ)かHTML4.01strictが無難だろうなあ。
  • cssに↓を書く

    textarea,input,table{
    font-size:100%;
    }

 各ブラウザのスタイル継承バグ(仕様?)回避のため。
  • paddingを使わない
     divを2重にしてmarginで指定。border-width分はあきらめる。
     IE6以降の標準モードならいいらしいけど、互換モードだし……。
  • font-size:smallとか書かない
     全要素を<div>で囲ってfont-sizeを%指定。
     互換モードだし……。
  • <textarea>のサイズはcolsでは決まらない
     cssで指定する。ていうかもはや、colsが必須属性になってる理由が理解できないんだけど。
  • ボックスのwidthはできるだけ指定
     そうしないと、floatを使ったときにIEで大変な目にあうことがあります。

[2007.03.22 00:42]英-Ran :

XHTML1.1の1行目はxml宣言を入れなければならない。

これ本当? UTF-8かUTF-16ならxml宣言はいらないから、なくてもよいはず。↓にも「An XML declaration like the one above is not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents.」とは書いてあるけど必須とは書いてないよ。

http://www.w3.org/TR/xhtml11/conformance.html


[2007.03.22 03:12]てらしま :
 たしかにそのとおりでした。強く推奨されてるけどUTF-8かUTF-16なら必須ではないようですね。
 ただし1.0と違うのはhttpヘッダで文字コード宣言しててもダメというところで、UTF-8かUTF-16以外を使うならやっぱり必須なのです。
 UTF-8にするのはいろいろとめんどくさいしなあ。


クロスブラウザ対策おぼえがきを