什麼才是對的DOCTYPE宣告?

話說有一天我正在寫一段簡單到不行的HTML的時候,突然有一個問題非常的困擾着我。這段HTML是這樣的:


就這麼簡單的一段,然後我直覺的認為body的高度一定等同於browser中inner window的高度。一定是吧,我都設定了body高度是100%了啊。幹!但不是,我想了一整天一直覺得Chrome有bug,但是後來發現IE/FireFox也是 … 所以,媽的,這應該是我腦袋裡的bug …

還好我後來遇到一個神人(Tim.yellow) ,他立刻就可以跟我說這是因為我的DOCTYPE宣告會讓瀏覽器進入Stirct模式(這模式的歷史來自於早期瀏覽器各家沒有完整遵守W3C spec的關係。因此後來有了這個模式是為了相容在當年錯誤的狀況下產生的網頁的兼容性。我的認知大概是這樣 网上最好的游戏,如果有錯神人Tim會幫我修改XD) ,在Strict模式下,整個viewport的root是html。

所以為了讓這段簡單的HTML符合我的預期,必須幫HTML也加上height style才能夠影響整個viewport的高度:


這樣寫就好了耶。果然是神人Tim。

或者是:


什麼都不寫,就會進入Quirks Mode,這時候的root是body,所以高度就真的會是100%。

感謝來自雲端的神人 Tim 🙂

Tags:


Comments
  1. 回覆
  2. 回覆
  3. 回覆
  4. 回覆

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *