doctype 宣言 のありなしの違 い
◆ strict モードか互換 モードかが変 わる
◆ デフォルトのマージンで画面 外 の部分 は無視 される
◆ css の px が省略 可能
◆ デフォルトのマージンで
◆ css の px が
みなさん doctype 宣言 書 いてますかー?
ちょっと試 したい時 には 書 かないで作 って あとから書 いてある方 に埋 め込 むと動 かなかったりずれてたり そういうことがあるのでとりあえず全部 に書 いておいたほうがいいと思 います
行 目 に書 くだけです
コピペしなくても特 に困 らない長 さです
どういう違 いがあるかですが 上 の宣言 文 は HTML5 の書 き方 で sttrict モードになります
何 もかかないのは 互換 モードです
互換 モードは名前 の通 り昔 の記述 方法 でも動 くようにしています
こっちのほうが便利 なところもありますが HTML5 は strict モードだけらしいですし strict モードをメインに考 えていけばいいと思 います
宣言 なしだと HTML5 が使 えないってわけではないんですけどね
よく困 る違 いは 高 さの 100% の扱 いの違 いですね
strict モードだと html と body から height:100% を指定 しないとダメです
さらに Chrome だとなぜか 100% なのにはみ出 てスクロールバーが出 るバグのような挙動 をします
ここまでは (Chromeがおかしいのは除 いて)有名 なところだと思 います
今回 は 最近 私 が気 づいた部分 2つの紹介 です
サンプルを用意 してるので比較 してみてください
doctype宣言 あり
doctype宣言 なし

見 てみてください
宣言 なしのほうが上 の方 に文字 があります
p タグは Chrome だと 18px の上下 マージンがデフォルト値 です
宣言 ありでは 18px 上部 に確保 されていますが 宣言 なしではマージンは body タグの部分 だけで p タグ分 の上部 マージンはありません
ですが自分 で margin:18px 0; と設定 すると 宣言 ありと一緒 の位置 になります
ブラウザ固有 のスタイルに限 り適用 されないみたいです
黄 緑 の四角 にマウスカーソルを持 っていってください
宣言 なしでは ピンクの四角 が移動 しますが 宣言 ありだと移動 しません
違 いは スタイルの変更 で px をつけるかどうかです宣言 なしの方 はちゃんと 100px にしてくれています
1つめは宣言 ありの動 きのほうが好 きですが 2つめは宣言 なしの動 きのほうが好 きです
こういう違 いは探 すとまだまだありそうなので互換 モードで作 ったのを strict モードにコピペするのは危険 だと思 います
可能 なら最初 から両方 一緒 にしたほうがいいです
ちょっと
<!doctype html>
これを1コピペしなくても
違 いは?
どういうこっちのほうが
よく
strict モードだと html と body から height:100% を
さらに Chrome だとなぜか 100% なのにはみ
気 づきづらい違 い
ここまでは (Chromeがおかしいのはサンプルを
doctype
doctype
1つめ
margin をp タグは Chrome だと 18px の
ですが
ブラウザ
2つめ
elem.style.left = 100
と px なしでも 1つめは
こういう