精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
documentElement和body的區(qū)別

document.documentElement和document.body的區(qū)別(轉(zhuǎn))

網(wǎng)頁中獲取滾動條卷去部分的高度,可以通過 document.body.scrollTop 來獲取,比如使div跟著滾動條滾動:


<div id="div" style="width:100px;height:100px;background:#ccc;position:absolute;"></div>
window.onscroll = function ()
{
var div = document.getElementById("div");
div.style.top = document.body.scrollTop + "px";
}

運(yùn)行后沒有達(dá)到預(yù)期效果,輸出document.body.scrollTop 的值一看,一直都是 0。一翻折騰,原來是 DTD 的問題,要是頁面直接用<html> 開頭的話就沒有問題了。但是要符合 web 標(biāo)準(zhǔn),DTD 當(dāng)然是不能少的。

如果有 DTD 時用,那就用document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。


window.onscroll = function ()
{
var oFix = document.getElementById("divfix");
oFix.style.top = document.documentElement.scrollTop + "px";
}



DTD相關(guān)說明:


頁面具有 DTD,或者說指定了 DOCTYPE 時,使用document.documentElement。

頁面不具有 DTD,或者說沒有指定了 DOCTYPE,時,使用 document.body。

在 IE 和 Firefox 中均是如此。

為了兼容,不管有沒有 DTD,可以使用如下代碼:


var scrollTop = window.pageYOffset  //用于FF
|| document.documentElement.scrollTop
|| document.body.scrollTop
|| 0;



documentElement 和 body 相關(guān)說明:


body是DOM對象里的body子節(jié)點(diǎn),即<body> 標(biāo)簽;

documentElement是整個節(jié)點(diǎn)樹的根節(jié)點(diǎn)root,即<html> 標(biāo)簽;


DOM把層次中的每一個對象都稱之為節(jié)點(diǎn),就是一個層次結(jié)構(gòu),你可以理解為一個樹形結(jié)構(gòu),就像我們的目錄一樣,一個根目錄,根目錄下有子目錄,子目錄下還有子目錄。

以HTML超文本標(biāo)記語言為例:整個文檔的一個根就是,在DOM中可以使用document.documentElement來訪問它,它就是整個節(jié)點(diǎn)樹的根節(jié)點(diǎn)。而body是子節(jié)點(diǎn),要訪問到body標(biāo)簽,在腳本中應(yīng)該寫:document.body。

 

轉(zhuǎn)自:http://www.87cool.com/article-493.aspx

關(guān)于DOCTYPE的說明:請見摘錄自藍(lán)色理想的文章!

關(guān)于DOCTYPE

作者:javapigpig 時間: 2007-12-06 文檔類型:原創(chuàng) 來自:藍(lán)色理想

DOCTYPE不可怕,但把它拿走,會讓你怕了又怕。

最近在藍(lán)色理想轉(zhuǎn)悠,發(fā)現(xiàn)很多朋友提出有關(guān)DIV+CSS排版問題,以及IE與FF的兼容問題。怎么問的都有,結(jié)果就是一個——顯示很奇怪,很難調(diào) 整。我們?yōu)g覽的大多數(shù)網(wǎng)站,或者用Dreamweaver創(chuàng)建一個新的網(wǎng)頁文檔時,源碼的頂部都會有DocType聲明,但是很多人沒有注意它,甚至在創(chuàng) 作時候直接將它刪掉,其實(shí)這往往就是噩夢的開始。在遵循標(biāo)準(zhǔn)的任何Web文檔中,DOCTYPE都是一項(xiàng)必需的元素。它會影響代碼驗(yàn)證,并決定了瀏覽器最 終如何顯示你的web文檔。為了避免DOCTYPE的問題重復(fù)出現(xiàn),我根據(jù)手頭的資料整理了這篇文檔,以備自己及有興趣的朋友參考。

在默認(rèn)情況下,F(xiàn)F和IE的解釋標(biāo)準(zhǔn)是不一樣的,也就是說,如果一個網(wǎng)頁沒有聲明DOCTYPE,它就會以默認(rèn)的DOCTYPE解釋下面的 HTML。在同一種標(biāo)準(zhǔn)下,不同瀏覽器的解釋模型都有所差異,如果聲明標(biāo)準(zhǔn)不同,不用我說,您自己想就可以了。學(xué)習(xí)網(wǎng)頁標(biāo)準(zhǔn),瀏覽器兼容,從哪里開始您自 己決定,但是,請認(rèn)識DOCTYPE:

一、什么是DOCTYPE

DOCTYPE是Document Type(文檔類型)的簡寫,在頁面中,用來指定頁面所使用的XHTML(或者HTML)的版本。要想制作符合標(biāo)準(zhǔn)的頁面,一個必不可少的關(guān)鍵組成部分就 是DOCTYPE聲明。只有確定了一個正確的DOCTYPE,XHTML里的標(biāo)識和CSS才能正常生效。

二、DOCTYPE的規(guī)則

DOCTYPE聲明的寫法遵循一定的規(guī)則,它指出閱讀程序應(yīng)該用什么規(guī)則集來解釋文檔中的標(biāo)記。在Web文檔的情況下,“閱讀程序”通常是瀏覽器或 者校驗(yàn)器這樣的一個程序,“規(guī)則”則是w3c所發(fā)布的一個文檔類型定義(dtd)中包含的規(guī)則。
每個dtd都包括標(biāo)記、attributes、 properties等內(nèi)容,它們用于標(biāo)記web文檔的內(nèi)容;此外還包括一些規(guī)則,它們規(guī)定了哪些標(biāo)記能出現(xiàn)在其他哪些標(biāo)記中。每個web建議標(biāo)準(zhǔn)(比如 html 4 frameset和xhtml 1.0 transitional)都有自己的dtd。

以下是從手冊上摘抄的規(guī)則:

語法:

HTML  頂級元素  可用性 "注冊//組織//類型 標(biāo)簽//定義  語言""URL"

可能值:

- 頂級元素:指定 DTD 中聲明的頂級元素類型。這與聲明的 SGML 文檔類型相對應(yīng)。 HTML 默認(rèn)。HTML。
- 可用性:指定正式公開標(biāo)識符(FPI)是可公開訪問的對象還是系統(tǒng)資源。 PUBLIC 默認(rèn)。可公開訪問的對象。SYSTEM 系統(tǒng)資源,如本地文件或 URL。
- 注冊:指定組織是否由國際標(biāo)準(zhǔn)化組織(ISO)注冊。 + 默認(rèn)。組織名稱已注冊。
- 組織名稱未注冊。Internet 工程任務(wù)組(IETF)和萬維網(wǎng)協(xié)會(W3C)并非注冊的 ISO 組織。
組 織:指定表明負(fù)責(zé)由 !DOCTYPE 聲明引用的 DTD 的創(chuàng)建和維護(hù)的團(tuán)體或組織的名稱,即 OwnderID。 IETF IETF。 W3C W3C。
- 類型:指定公開文本類,即所引用的對象類型。 DTD 默認(rèn)。DTD。
- 標(biāo)簽:指定公開文本描述,即對所引用的公開文本的唯一描述性名稱。后面可附帶版本號。 HTML 默認(rèn)。HTML。
- 定義:指定文檔類型定義。
  Frameset 框架集文檔。
  Strict 排除所有 W3C 專家希望逐步淘汰的代表性屬性和元素,因?yàn)闃邮奖硪呀?jīng)很完善了。
  Transitional 包含除 frameSet 元素的全部內(nèi)容。
- 語言:指定公開文本語言,即用于創(chuàng)建所引用對象的自然語言編碼系統(tǒng)。該語言定義已編寫為 ISO 639  語言代碼(大寫兩個字母)。 EN 默認(rèn)。英語。
- URL:指定所引用對象的位置

為了獲得正確的DOCTYPE聲明,關(guān)鍵就是讓dtd與文檔所遵循的標(biāo)準(zhǔn)對應(yīng)。例如,假定文檔遵循的是xhtml 1.0 strict標(biāo)準(zhǔn),文檔的doctype聲明就應(yīng)該引用相應(yīng)的dtd。另一方面,如果doctype聲明指定的是xhtml dtd,但文檔包含的是舊式風(fēng)格的html標(biāo)記,就是不恰當(dāng)?shù)模活愃频兀绻鹍octype聲明指定的是html dtd,但文檔包含的是xhtml 1.0 strict標(biāo)記,同樣是不恰當(dāng)?shù)摹?/p>

三、選擇什么樣的DOCTYPE

如上例所示,XHTML 1.0中有3種DTD(文檔類型定義)聲明可以選擇:過渡的(Transitional)、嚴(yán)格的(Strict)和框架的(Frameset)。這里分 別介紹如下。

1.過渡的

一種要求不很嚴(yán)格的DTD,允許在頁面中使用HTML4.01的標(biāo)識(符合xhtml語法標(biāo)準(zhǔn))。過渡的DTD的寫法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"

2.嚴(yán)格的

一種要求嚴(yán)格的DTD,不允許使用任何表現(xiàn)層的標(biāo)識和屬性,例如<br/>等。嚴(yán)格的DTD的寫法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"

3.框架的

一種專門針對框架頁面所使用的DTD,當(dāng)頁面中含有框架元素時,就要采用這種DTD。框架的DTD的寫法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"

使用嚴(yán)格的DTD來制作頁面,當(dāng)然是最理想的方式。但是,對于沒有深入了解Web標(biāo)準(zhǔn)的網(wǎng)頁設(shè)計(jì)者,比較合適的是使用過渡的DTD。因?yàn)檫@種DTD 還允許使用表現(xiàn)層的標(biāo)識、元素和屬性,比較適合大多數(shù)網(wǎng)頁制作人員。

四、需要注意的問題

沒什么特別的,就是一定要將DOCTYPE聲明放在XHTML文檔的頂部,上面哪怕多個HTML注釋標(biāo)記都不行。

最好示例代碼也加上DOCTYPE,否則效果會有差異。

經(jīng)典論壇討論
http://bbs.blueidea.com/thread-2792311-1-1.html

本文鏈接:http://www.blueidea.com/tech/web/2007/5172.asp 

出處:藍(lán)色理想
責(zé)任編輯:moby

◎進(jìn)入論壇網(wǎng)頁制作WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
頁面元素的定位:getBoundingClientRect()和document.documentElement.scrollTop
iframe 跨域自適應(yīng)
document.compatMode(doctype應(yīng)用)
document.documentElement.scrollTop
用document.body.clientWidth不能獲取準(zhǔn)確值的問題
DIV始終居中的半透明彈出層
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 新和县| 洞头县| 香港 | 丰宁| 无极县| 镇坪县| 封丘县| 调兵山市| 江城| 奉新县| 靖安县| 湟源县| 库尔勒市| 新野县| 孟村| 社会| 谷城县| 沙雅县| 和静县| 伊宁县| 隆尧县| 大渡口区| 娱乐| 麦盖提县| 宜城市| 亚东县| 武邑县| 利津县| 攀枝花市| 固安县| 灵璧县| 黄冈市| 会泽县| 阜康市| 巴中市| 萨迦县| 长乐市| 沂源县| 准格尔旗| 明光市| 常州市|