最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

!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來取得元素的精確值。

相關文章

  • 基于javascript的異步編程實例詳解

    基于javascript的異步編程實例詳解

    這篇文章主要介紹了基于javascript的異步編程,結合實例形式分析了javascript異步編程的原理、實現技巧與相關注意事項,需要的朋友可以參考下
    2017-04-04
  • JS實現移動端上下滑動一次一屏

    JS實現移動端上下滑動一次一屏

    這篇文章主要為大家詳細介紹了JS實現移動端上下滑動一次一屏,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • js實現滑動進度條效果

    js實現滑動進度條效果

    這篇文章主要為大家詳細介紹了js實現滑動進度條效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • postMessage及webSocket跨域方案詳解

    postMessage及webSocket跨域方案詳解

    這篇文章主要為大家介紹了postMessage及webSocket跨域方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • javascript 關鍵字高亮顯示實現代碼

    javascript 關鍵字高亮顯示實現代碼

    屏蔽HTML標簽,支持多關鍵字(以空格間隔),關鍵字內可含有特殊字符
    2010-09-09
  • js與jquery獲取父元素,刪除子元素的兩種不同方法

    js與jquery獲取父元素,刪除子元素的兩種不同方法

    本篇文章主要是對js與jquery獲取父元素,刪除子元素的兩種不同方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 基于ajax和jsonp的原生封裝(實例)

    基于ajax和jsonp的原生封裝(實例)

    下面小編就為大家?guī)硪黄赼jax和jsonp的原生封裝(實例)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • JavaScript中變量提升 Hoisting

    JavaScript中變量提升 Hoisting

    因為這個問題很是經典,而且容易出錯,所以在介紹一次。哈哈。莫怪哦。
    2012-07-07
  • javascript溫習的一些筆記 基礎常用知識小結

    javascript溫習的一些筆記 基礎常用知識小結

    在電腦上找到多年前的javascript的一些小筆記,因為要將筆記本上面的文件整理一下, 不用的刪除掉, 所以將此篇筆記再發(fā)布一下,存檔到自己的博客吧, 電腦上的文件就刪除了
    2011-06-06
  • js 轉json格式的字符串為對象或數組(前后臺)的方法

    js 轉json格式的字符串為對象或數組(前后臺)的方法

    下面小編就為大家?guī)硪黄猨s 轉json格式的字符串為對象或數組(前后臺)的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論

西宁市| 蕲春县| 台中市| 永兴县| 沙坪坝区| 玉林市| 安达市| 阿克| 西平县| 石景山区| 新田县| 北京市| 福州市| 多伦县| 临洮县| 永新县| 桃园县| 梨树县| 蓬安县| 峨山| 如皋市| 越西县| 紫阳县| 嵊州市| 潢川县| 万州区| 会理县| 临泽县| 牙克石市| 如皋市| 瑞金市| 开阳县| 石嘴山市| 稷山县| 斗六市| 玉门市| 墨竹工卡县| 长治县| 西城区| 张掖市| 阳朔县|