避免在 HTML 開頭使用註解

五月 2nd, 2009

前幾天學弟問我一個問題,說他 CSS 排版的網頁在大部分瀏覽器都正常,唯獨 IE 怪怪的,網頁中的 DIV 元素怎麼樣都無法置中,困擾了他許久,他的原始碼內容大致長這樣:


<!-- Head area -->
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test Page</title>
<style type="text/css">
<!--
#content {
	margin: 0 auto;
	width: 500px;
}
-->
</style>
</head>

<body>
<!-- Content Begin -->
<div id="content">Content</div>
<!-- Content End -->
</body>
</html>

嗯,看起來不應該會有什麼問題的,那是什麼原因讓 IE 無法將區塊置中勒?
我突然注意到他網頁開頭的那一行註解,因為自己寫網頁到現在從未在開頭使用過註解…

果然,拿掉以後就一切正常了。IE,還真是搞不懂你啊!
(註:全系列 IE 都有此現象)

網頁設計 , ,

  1. Dylan
    五月 2nd, 2009 at 12:15 | #1

    還滿正常的
    因為正確的網頁格式最上方必須是<!DOCTYPE開頭的宣告
    當然不能有其他任何字囉

    可以試試看把DOCTYPE刪除,會發現區塊仍然無法置中...
    參考一下囉^^

  2. 五月 2nd, 2009 at 12:23 | #2

    @Dylan
    是阿~在我的認知裡也是開頭必須是 DTD 宣告,
    所以我並未將它定為 IE bug,只能說是各瀏覽器的解讀和相容度不同吧!

  3. jaceju
    五月 2nd, 2009 at 14:01 | #3

    正常呀:D 因為如果在 DOCTYPE 前加入任何字 (例如 或 ) , IE 都會進入 Quirk 模式~

  4. jaceju
    五月 2nd, 2009 at 14:02 | #4

    啊...抱歉...字被吃掉了:
    例如 <?xml .. ?> 或 <!-- -->

  5. 五月 2nd, 2009 at 14:21 | #5

    @jaceju
    原來如此,長知識了 ^^
    jaceju 兄書上或 Blog 文章裡的許多觀念及心得讓小弟獲益良多,在此感謝!

  6. 汽車貸款
    七月 22nd, 2009 at 11:31 | #6

    @@原來是這樣@@感謝分享~

  7. 七月 29th, 2009 at 18:12 | #7

    IE的兼容性非常差,不过感觉IE8好了很多

  8. 四月 29th, 2010 at 16:38 | #8

    IE8 整個很不好用,無法使 div置中

    用ie7就眼正常了!

  1. No trackbacks yet.