Authentication




Cancel OK
B!コメントする  2011-01-19 00:00:00 by old

HTMLの先頭に書くやつのこと

基本的に独学で突っ走ってますがDOCTYPE宣言によって動作が変わることがあったので書いときます。
そんなこと当たり前じゃんとか思われるかもしれませんが・・・
DOCTYPEの内容によってブラウザ上での表示が変わってくるわけです。
<HTML>の前に書くものでいくつか種類があるわけですが

HTML 4.01 Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

こんな感じで色々とあるわけです。
Firefoxとかでは無くても大丈夫なこともあるんですがIEでこれを書いてないとCSSやjavascriptあたりが機能しないことがあります。
基本的にstrict/Transitional/Framesetの3つがあり、HTML以外にもXHTMLにも3つほどあります。
そこで違いはなんだ?ってことになるわけですが簡単に上げると
Strict = 厳密型
Transitional = 移行型
Frameset = フレーム設定型
らしいです。
W3Cあたりで定義されているコーディング規則に則っているならStrictでも問題はありません。なのでStrictでもTransitionalでも大丈夫なわけですが
Strictの場合はブロックレベル要素とインライン要素に注意しないといけなくなります。

ちょっと難しいですがインライン要素っつーのはbody要素に直接書けない事になっている(今まで知らなかった・・・)のでブロック要素でやってやる必要があるわけです。
まずダメな例
"example"height="50"しないといけないわけです。
要はbody直下のタグにそのまま書いたらいかんというわけですが、サイトを作成した直後にW3Cチェックとかするといつもマイナス300点とか余裕で行ってる私からすれば驚きだったわけです。
さきほどW3Cの日本語訳を読んで納得したのですが、クセやいままでの使いまわしをする場合は気をつけないといけないなと。
実際にはDOCTYPE書いてなかったせいでIE8でbackground-colorが効かなかったりhoverが機能しなかったりと色々な症状に出くわしました。
サイト持ってる方はDOCTYPE宣言消してみてどんな風に挙動が変わるのか見てみるといいかもしれません。


ブログ  

  • コメント
  • コメントはまだありません