February 21, 2005

Valid HTML

やろうやろうと思いながら時間もないしやる気もないし,と延期してきたことの一つが
このサイトのHTML記述をValidに改めることでした。
なにしろIEにはXHTMLなのにXML宣言を入れると後方互換モードで解釈するという
諸悪の根源にして最も手強いラスボス的なバグがあったりしたものだから。
いままではhtml-lintにああだこうだと文句を言われながらも
痛し痒しという具合であったが,ついに重い腰を上げて作業に取りかかってみました。

概説すると,

  1. 互換モード解釈ではWidthの解釈が標準モードと異なる
     →CSS中でWidthとPaddingを一緒に定義できない
    Widthだけの定義によってデザインの骨格を決め打ちしてしまう
     →デザインを根本的に変える
     →改めて自分のコードが現実に則したものでなかったことに気付く
  2. 互換モード解釈ではmargin-left,rightを解釈できないのでcontainerが左に寄る
     →text-alignをcenter@body,left@containerと云う無理矢理な指定にしてしまう

まずはこれで互換モード@IEが標準モード@Opera,Firefoxと致命的な解釈違いを起こさなくなる。
あとは互換モードによるpxの違いから来るフォントサイズのズレも修正したいが,
絶対評価でも相対評価でもうまく行きそうにないので,軽く挫折してしまった。
とりあえずは現段階でlintの吐く不合理な文句,もといエラーを加えても点数は98点に到達しました。
元々は88点あたりに随分と長く滞っていたので糞詰まりがとれたようで非常に気持ちがいいです。
MTのベース部分を弄れるだけこのツールを理解していないので実体参照に関する
テキストフォーマットができないので,Validという意味では来るとこまで来たという感じです。

残る課題はGeckoエンジンがborderをうまく解釈していないっぽいバグを直したいのですが,
http://cssbug.at.infoseek.co.jp/detail/mozilla/b072.html
これが原因のようですが,改善策も分からないし要するに新しいバージョンを待ちなさいということらしい。

Posted by Samourai | Comments(0) | TrackBack (0)