作者GALINE (我是CQD,不是cqd)
看板PHP
標題Re: [請益] 語法請教
時間Sat Feb 28 01:07:14 2009
※ 引述《banband (菸害防治法是違憲的行為)》之銘言:
: 請教一下
: 有很多網頁都會加以下語法
: 想請問是什麼效果和作用
: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
: <html xmlns="http://www.w3.org/1999/xhtml"><head>
: 感謝回答囉
這東西叫做Doctype,用處是告訴瀏覽器「我這份文件是某某格式」
例如HTML3、HTML4 strict、XHTML1.0 translational....等等
以上面的Doctype來說,這份文件應該是XHTML 1.0 Strict格式
----------------------------------------------------------------------
實務上的差別是,瀏覽器常會依照有沒有Doctype,以及Doctype指定的版本來決定
顯示模式為Quirks模式還是標準模式
在Quirks模式中,瀏覽器會比較不依照標準規定顯示畫面,這是為了相容舊的html
在標準模式中,瀏覽器會依照W3C制定的標準顯示網頁。
最明顯的例子是,如果一個DIV用CSS同時設定了width跟padding,這DIV在IE的Quirks模
式跟標準模式中會有不同的寬度。
一般來說,各家的Quirks模式差異會比較大,加上Doctype讓瀏覽器進入Quirks模式以後
顯示的版面會大致相同。在使用CSS排版時,能夠減少不同瀏覽器顯示不一致的狀況。
不過現實是殘酷的。
並不是加上了Doctype就一定會進入標準模式。舊的Doctype通常會讓瀏覽器進入Quirks
模式,這部份的對照表可參照Wikipedia相關條目。
http://en.wikipedia.org/wiki/Quirks_mode#Comparison_of_document_types
值得注意的是XHTML屬於XML,應該要加上<?xml version="1.0" encoding="UTF-8"?>
的宣告。但加上這段宣告之後IE6會進入Quirks模式,IE7則不會。於是同樣是IE,卻
可能顯示出不同的版面
就算同樣是標準遵循模式,各瀏覽器的顯示結果還是多少有點出入。尤其是IE特別容易
出鎚。有時改瘋了會讓人開始怨恨IE,詛咒IE,希望IE消失在世界上…
不是說其他瀏覽器都沒有問題,Firefox也不完美。但IE實在是很糟糕 /__\
===
說到Doctype,就要來宣揚一下HTML5。他的Doctype長這樣: <!DOCTYPE html>
省去那些又臭又長的廢話,好讀多了。
--
「是大環境要求的~畢竟沒有總受就沒有故事~╮(╯_╰)╭」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.244.170
推 ybite :大推特推<!DOCTYPE html> = = 02/28 01:23
→ buganini :it should be called "DTD" DocumentTypeDefinition. 02/28 07:34
→ GALINE :我以為DTD是內含格式定義的那份?還是我搞錯了[汗] 02/28 08:35
推 lgzenith :推IE實在是很糟糕....囧 02/28 12:35
推 chph :XHTML 不加上 XML 宣告比較好 02/28 19:21
→ buganini :Document Type Declaration才對 03/01 16:35