欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

!DOCTYPE聲明對JavaScript的影響分析

 更新時間:2010年04月12日 17:59:53   作者:  
DOCTYPE是document type(文檔類型)的簡寫,在web設計中用來說明你用的XHTML或者HTML是什么版本。

要建立符合標準的網頁,DOCTYPE聲明是必不可少的關鍵組成部分;除非你的XHTML確定了一個正確的DOCTYPE,否則你的標識和CSS都不會生效;當然對JS的取值也會有影響。

DOCTYPE聲明如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

DOCTYPE聲明包括:過渡型(Transitional),嚴格型(Strict)和框架型(Frameset)。接下來就看一下這三種類型對不同瀏覽器在獲取元素相關信息時的影響(包括不定義DOCTYPE和只將DOCTYPE定義為<!docType>形式),我測試的瀏覽器分別為:IE6.0、IE7.0、IE8.0(變態(tài)模式)、FF、Opera、Chrome和Safari。由于IE5.5已經幾乎被淘汰,所以不在測試范圍之內。

以下就是測試結果(滾動條只是元素本身的滾動條并不是窗口的):

一、過渡型(Transitional)

1、測試IE6.0、IE7.0與IE8.0(非變態(tài)模式Quirks)的寬度和高度(width,height)

offsetWidth,offsetHeight clientWidth,clientHeight currentStyle[‘width'],currentStyle[‘width']

有無滾動條均為:
offsetWidth=
paddingLeft+paddingRight+borderLeft+borderRight

offsetHeight=
paddingTop+paddingBottom+borderTop+boderBottom

1、無滾動條
clientWidth=CSS中定義的寬度+paddingLeft+paddingRight

clientHeight=CSS中定義的高度+paddingTop+paddingBottom
(均不包括邊框寬度)

2、有滾動條
clientWidth=CSS中定義的寬度-滾動條寬度(17固定值)-邊框寬度,

clientHeight=CSS中定義的高度-滾動條寬度(17固定值)-邊框寬度

實際真實寬度,不包括padding與邊框值
(除IE和Opera以外無此屬性)

offsetLeft,offsetTop clientLeft,clientTop currentSytle[‘left'],currentStyle[‘top']

有無滾動條均為:
offsetLeft=對象的offsetLeft-邊框
offsetTop=實際值

有無滾動條均為:邊框的寬度

除IE和Opera以外無此屬性

2、測試IE8.0變態(tài)模式(Quirks)的寬度與高度(width,height)

offsetWidth,offsetHeight clientWidth,clientHeight currentStyle[‘width'],currentStyle[‘height]

1、(無滾動條)寬度(高度)=當前對象的實際數值
2、(有滾動條)寬度(高度)=CSS中定義的數值

1、(無滾動條)寬度(高度)=當前對象的實際數值
2、(有滾動條)寬度(高度)=當前對象在CSS中定義的數值-滾動條(17)

有無滾動條均為:
寬度和高度均為CSS中定義的數值

offsetLeft,offsetTop clientLeft,clientTop currentSytle[‘left'],currentStyle[‘top']

有無滾動條均為:

offsetLeft(offsetTop)=實際值

有無滾動條均為:邊框的寬度

除IE和Opera以外無此屬性

3、FF、Opera、Safari和Chrom中所取得的數值與第一種情況一樣。

二、嚴格型(Strict)

1、測試IE6.0、IE7.0與IE8.0(非變態(tài)模式Quirks)的寬度和高度(width,height)

offsetWidth,offsetHeight clientWidth,clientHeight currentStyle[‘width'],currentStyle[‘width']

有無滾動條均為:
offsetWidth=
paddingLeft+paddingRight+borderLeft+borderRight

offsetHeight=
paddingTop+paddingBottom+borderTop+boderBottom

1、無滾動條
clientWidth=CSS中定義的寬度+paddingLeft+paddingRight

clientHeight=CSS中定義的高度+paddingTop+paddingBottom
均不包括邊框寬度

2、有滾動條
clientWidth=CSS中定義的寬度-滾動條寬度(17固定值)-邊框寬度,

clientHeight=CSS中定義的高度-滾動條寬度(17固定值)-邊框寬度

實際真實寬度,不包括padding與邊框值
(除IE和Opera以外無此屬性)

offsetLeft,offsetTop clientLeft,clientTop currentSytle[‘left'],currentStyle[‘top']

有無滾動條均為:
offsetLeft=對象的offsetLeft-邊框
offsetTop=實際值

有無滾動條均為:邊框的寬度

除IE和Opera以外無此屬性

2、測試IE8.0變態(tài)模式(Quirks)的寬度與高度(width,height)

offsetWidth,offsetHeight clientWidth,clientHeight currentStyle[‘width'],currentStyle[‘height]

1、(無滾動條)寬度(高度)=當前對象的實際數值
2、(有滾動條)寬度(高度)=CSS中定義的數值

1、(無滾動條)寬度(高度)=當前對象的實際數值
2、(有滾動條)寬度(高度)=當前對象在CSS中定義的數值-滾動條(17)-邊框寬度

有無滾動條均為:
寬度和高度均為CSS中定義的數值
(除IE和Opera以外無此屬性)

offsetLeft,offsetTop clientLeft,clientTop currentSytle[‘left'],currentStyle[‘top']

有無滾動條均為:

offsetLeft(offsetTop)=實際值

有無滾動條均為:邊框的寬度

除IE和Opera以外無此屬性

3、FF、Opera、Safari和Chrom中所取得的數值與第一種情況一樣。

三、取消DOCTYPE聲明

1、IE6.0、IE7.0在沒有DOCTYPE聲明時與IE8.0中的變態(tài)模式(Quirks)中嚴格型結果相同。

2、FF、Safari、Chrome和IE8.0標準模式是與過渡型結果相同。

3、Opera瀏覽器中,在元素沒有滾動條時offsetHeight與clientHeight的取值是在其當前現實的大小。

四、將DOCTYPE聲明改寫為<!docType>

1、IE6.0、IE7.0在沒有DOCTYPE聲明時與IE8.0中的變態(tài)模式(Quirks)中嚴格型結果相同。

2、FF、Safari、Chrome和IE8.0標準模式是與過渡型結果相同。

3、Opera瀏覽器中,在元素沒有滾動條時offsetHeight與clientHeight的取值是在其當前現實的大小。

在Opera中也擁有與IE一樣的屬性“currentStyle”,所以在Opera中也可以使用currentStyle來取得元素的精確值。

相關文章

  • js中關于一個分號的崩潰示例

    js中關于一個分號的崩潰示例

    下面的js代碼不管if條件的結果是true還是false都會執(zhí)行大括號的代碼,結果發(fā)現if條件括號后面多寫了分號,崩潰啊
    2013-11-11
  • js中class的點擊事件沒有效果的解決方法

    js中class的點擊事件沒有效果的解決方法

    下面小編就為大家?guī)硪黄猨s中class的點擊事件沒有效果的解決方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Javascript+CSS實現影像卷簾效果思路及代碼

    Javascript+CSS實現影像卷簾效果思路及代碼

    Arcmap里面的一個卷簾效果肯定記憶很深刻,我也對這種比較炫的卷簾效果做了一下研究,現在給大家匯報下結果
    2014-10-10
  • javascript的23種設計模式示例總結大全

    javascript的23種設計模式示例總結大全

    這篇文章主要為大家介紹了javascript的23種設計模式的總結大全,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • BootStrap Fileinput的使用教程

    BootStrap Fileinput的使用教程

    bootstrap-fileinput是基于bootstrap的上傳控件。此控件在網上可以找到很多例子,接下來通過本文給大家分享bootstrap fileinput的使用教程,非常不錯,感興趣的朋友一起看看吧
    2016-12-12
  • 利用AJAX實現WordPress中的文章列表及評論的分頁功能

    利用AJAX實現WordPress中的文章列表及評論的分頁功能

    在文中列表頁方面利用AJAX制作滾動到底觸發(fā)翻頁的效果比較常見,而在評論加載時AJAX顯示正在加載也很常用,下面就來看一下如何利用AJAX實現WordPress中的文章列表及評論的分頁功能
    2016-05-05
  • javascript實現智能手環(huán)時間顯示

    javascript實現智能手環(huán)時間顯示

    這篇文章主要為大家詳細介紹了javascript實現智能手環(huán)時間顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • js用類封裝pop彈窗組件

    js用類封裝pop彈窗組件

    這篇文章主要為大家詳細介紹了js用類封裝pop彈窗組件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 小試JavaScript多線程

    小試JavaScript多線程

    這兩天一直在弄ajax,用多了才發(fā)現了ajax 的cache問題,請求了好多次,得到了確是相同的結果,經常我想在請求的同時去做一些其它的事情,我在想javascript里有沒有辦法用多線程,經過在網上查找找到了結果。
    2008-11-11
  • JavaScript 詳解預編譯原理

    JavaScript 詳解預編譯原理

    這篇文章主要介紹了JavaScript 詳解預編譯原理的相關資料,需要的朋友可以參考下
    2017-01-01

最新評論