狠狠撸

狠狠撸Share a Scribd company logo
顿翱颁罢驰笔贰という黒魔术の话

     門屋 亮
     @ryokdy
自己紹介
? 所属 サイボウズ
? 手がけた製品
 – サイボウズ ガルーン 2.5 / 3.5
 – サイボウズ Office 8 / 9
 – サイボウズ デヂエ 8
 – サイボウズ メールワイズ 4 / 5
 など
想定するターゲット
? HTMLは書いたことがある
? DOCTYPEって聞いたことがあるけどよく知
  らない
? これからはHTML5らしいので勉強してみた
  い
? なんか昔作られたサイトをリニューアル
  させられるっぽい
アジェンダ
?   90年代ブラウザ戦争
?   Standards mode / Quirks mode
?   DOCTYPEをどう書けばいいか
?   代表的なサイトの例
?   壊れたスタイルの直し方
?   まとめ
第一次ブラウザ戦争




1995~2000
’96/11/2 Netscape Navigator 3.0
        日本語版発売




        6,000
’96/8/13 Internet Explorer 3.0
     ダウンロード開始




            0
シェア争いの結果
? 安定性、安全性よりも差別化が優先され
  る
? 独自仕様による混乱
? HTML規約に違反するページをIEは積極的
  に補正。結果としてNetscapeでレイアウト
  がずれるケースが多発
? 2000年にIEが市場シェアのほぼすべてを獲
  得して第一次ブラウザ戦争は終結
IEのセキュリティ問題と
 次世代ブラウザの登場
W3C標準への準拠が進む
? Acid2 2005/4/13~
  http://acid2.acidtests.org/
IE6
IE7
Firefox2
ここで切実な問題
? W3C勧告には準拠したい
? 仕様にそって正しく表示するようにする
  と、古いサイトがきちんと表示されなく
  なる。
? ブラウザのシェアが下がるのは嫌だ。
Microsoftのたどり着いた解


仕様どおりに表示してほしいときだけ
   そうすればよくない?
DOCTYPEの誕生
どんなふうにレンダリングしてほしいかは
htmlタグより先に書け

<DOCTYPE   これは標準モードのHTML>
<html>
ふー



一件落着
あれ、標準どおりに表示したつも
りだったけど標準じゃなかった
      よ。。


   どうする??
そうだ

こないだのはAlmost Standard mode
(ほぼ標準モード)と呼ぼう!
というわけで
? Quirks Mode(互換モード)
? Standards Mode(標準モード)
? Almost Standards Mode(ほぼ標準モード)
組み合わせ考えると
こんないっぱいできちゃったよ!
結局どうすればいいか
HTML5ではこれだけ



   <!DOCTYPE html>
facebook
標準モード

<!DOCTYPE html>
<html lang="ja" id="facebook" class="no_js">
twitter
標準モード

<!DOCTYPE html>
<html data-nav-highlight-class-name="highlight-
global-nav-home">
2ch
ほぼ標準モード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
mixi
互換モード

<html class="osWindows browserChrome
browserChrome19 serviceLogoutQuirks
pageHomeJpMixi domainJpMixi">
サイボウズ Office
互換モード。。

<html>
ミッション


   IE6 向けに作られたページを
モダンブラウザでも見られるように直せ
滨贰6だとこう见える
顿翱颁罢驰笔贰付きで颁丑谤辞尘别で见ると
QuirksモードのQuirkなところ
? class, idなどの属性値がcase-insensitive
? CSSプロパティの数値単位を省略できる
? CSSプロパティの色指定で#を省略できる
? text-alignで幅が指定されたブロックレベル
  の中央寄せができる
? ボックスの解釈がおかしい
ボックスの间违った解釈




                padding

     正しいwidth
                          border


    間違ったwidth
まとめ
? DOCTYPEスイッチは過去の戦争の爪痕
? HTML5だとかなり楽に書ける
? サイボウズOfficeにはこれからDOCTYPEを付ける
  つもり(たぶん)
? IEの独自仕様がっつりのページを直すのは大変
ありがとうございました

More Related Content

顿辞肠迟测辫别という黒魔术の话