亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript CSS修改學(xué)習(xí)第二章 樣式

 更新時間:2010年02月19日 14:05:33   作者:  
有時候你想看看文檔的默認(rèn)樣式。比如,你的某個段落的寬度是50%,你想知道在用戶的瀏覽器中他的確切的像素是多少。
另外,有時候你也許想知道添加到一個元素或者鏈接上的樣式的具體內(nèi)容。而style屬性只能讀取元素的內(nèi)聯(lián)形式的樣式,所以如果你想讀取其他樣式就得另想辦法了。

偏移
在使用一些小技巧之前,IE和Mozilla已經(jīng)添加了一個比較好的辦法:offsetSomething。使用這些屬性你就能夠讀取這個段落現(xiàn)在的一些比較重要的樣式。
舉個例子,使用offsetWidth。你就能知道這個段落現(xiàn)在的寬度的像素值。為了測試,你可以改變一下窗口的大小然后再運行一下。
代碼也非常的簡單:
復(fù)制代碼 代碼如下:

function getOff()
{
    x = document.getElementById('test');
    return x.offsetWidth;
}

然后我們以警告框的形式顯示這個值:alert('offsetWidth = ' + getOff())。
現(xiàn)在你就得到了這個段落在用戶瀏覽器里面的像素值,就可以進(jìn)行一些運算了。下面是一些你可以讀取的其他屬性:
offsetHeight:高度的像素值
offsetLeft:距離左邊的像素值(什么左邊?見下)
offsetTop:距離上面的像素值(什么上面?見下)
offsetWidth:寬度的像素值
注意這些屬性是只讀的,你不能直接修改。
為了方便說明,我準(zhǔn)備了一小段代碼。首先把這個段落移過來。
然后我們給他的寬度增加100像素。如果我們這時候查看offsetWidth就會看到變化。你也可以減少100像素然后查看。
如果你在兩種瀏覽器里面查看,可能會有不同。在IE里面就是原來的寬度+100像素,但是在Mozilla里面不是。因為Mozilla的更合乎標(biāo)準(zhǔn)一些:他只是查看內(nèi)容的寬度,而IE里面會加上邊距和邊框的寬度。雖然Mozilla的比較正確,但是我更傾向于IE的,因為更加的直觀一些。
如果你不介意Mozilla/IE的兼容性的話,代碼還是很簡單的:
復(fù)制代碼 代碼如下:

function changeOff(amount)
{
    var y = getOff();
    x.style.width = y + amount;
}

我們給函數(shù)傳遞要改變的值amount,然后用getOff()函數(shù)獲得原來的大小然后存儲在y里面,最后我們用原始大小和需要改變的值來重新確定元素的大小。
offsetWidth/Top
關(guān)于他們的定義,請在上一章中查看。

得到樣式
我們看到offset屬性局限性很大。瀏覽器給了我們一些更加方便的訪問元素樣式的方法但是不幸的是他們的可靠性和通用性不及offset。
Mozilla和Opera
Mozilla和Opera更傾向于使用css式的表達(dá)式而不是JavaScript的。比如你要得到字體大小就要使用css的font-size,而不是JavaScript的fontsize。
Mozilla支持的樣式很少。比如border[-somthing]在Mozilla里面就是空值,但是Opera能給出準(zhǔn)確的值。
IE
在IE里面我們能得到很多的樣式信息,但是我們一定要小心。在這個例子中border不起作用,你需要borderStyle,borderWidth,borderColor。
注意在JavaScript里面要方位border-width屬性必須拼寫成borderWidth。因為這個連接線可能會被認(rèn)為是減號。
另外,IE經(jīng)常給出auto值。雖然這是真實的值,但是沒什么用。所以有時候還得使用offset。

代碼
代碼依舊很簡單:
復(fù)制代碼 代碼如下:

function getStyle(el,styleProp)
{
    var x = document.getElementById(el);
    if (x.currentStyle)
        var y = x.currentStyle[styleProp];
    else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
    return y;
}

首先我們傳遞元素的ID和想訪問的樣式名稱
復(fù)制代碼 代碼如下:
function getStyle(el,styleProp) {

然后我們把元素保存在x中:
復(fù)制代碼 代碼如下:
var x = document.getElementById(el);

首先是IE的方法:元素的currentStyle屬性
復(fù)制代碼 代碼如下:
if (x.currentStyle) 2 var y = x.currentStyle[styleProp];
然后是Mozilla方法:使用getComputeStyle()方法,在Opera也同樣可行
[code] else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);

然后給調(diào)用這個函數(shù)的程序返回y。
復(fù)制代碼 代碼如下:
return y;
}

雖然這個函數(shù)不是很完美,但是也已經(jīng)力所能及了。

翻譯地址:http://www.quirksmode.org/dom/getstyles.html
轉(zhuǎn)載請保留以下信息
作者:北玉(tw:@rehawk)

相關(guān)文章

  • javascript事件模型介紹

    javascript事件模型介紹

    在各種瀏覽器中存在三種事件模型:原始事件模型( original event model),DOM2事件模型,IE事件模型.其中原始的事件模型被所有瀏覽器所支持,而DOM2中所定義的事件模型目前被除了IE以外的所有主流瀏覽器支持。
    2016-05-05
  • 詳解JavaScript事件循環(huán)機(jī)制

    詳解JavaScript事件循環(huán)機(jī)制

    這篇文章給大家分享了關(guān)于JavaScript事件循環(huán)機(jī)制的相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2018-09-09
  • JavaScript 學(xué)習(xí)筆記(九)call和apply方法

    JavaScript 學(xué)習(xí)筆記(九)call和apply方法

    兩者實現(xiàn)的功能是完全一樣的,只是參數(shù)傳遞方式不一樣,call是將各個參數(shù)以逗號(,)隔開,而apply是將所有參數(shù)組成一個數(shù)組進(jìn)行傳遞。
    2010-01-01
  • JavaScript中的call方法和apply方法使用對比

    JavaScript中的call方法和apply方法使用對比

    這篇文章主要介紹了JavaScript中的call方法和apply方法使用對比,需要的朋友可以參考下
    2015-08-08
  • Javascript學(xué)習(xí)筆記之函數(shù)篇(五) : 構(gòu)造函數(shù)

    Javascript學(xué)習(xí)筆記之函數(shù)篇(五) : 構(gòu)造函數(shù)

    javascript本身是沒有類的概念,只有函數(shù)的概念。javascript的類實際上也是一個javascript的函數(shù),在這個特殊的函數(shù)中間可以包含變量和其他javascript函數(shù)的引用。那么這個特殊的函數(shù)本身就是javascript所謂類的構(gòu)造函數(shù)。
    2014-11-11
  • JavaScript 學(xué)習(xí)筆記 Black.Caffeine 09.11.28

    JavaScript 學(xué)習(xí)筆記 Black.Caffeine 09.11.28

    這兩天終于寫出了一個個人認(rèn)為真正意義上的作業(yè)了,不過,最大感受就是。。。IE太垃圾了。。。so,這個作業(yè)實際上也沒有完成的很完美,因為,在IE上還是有兼容性的問題存在,不錯,就此先自我總結(jié)一下吧~免得以后又忘了~
    2009-11-11
  • Js基礎(chǔ)學(xué)習(xí)資料

    Js基礎(chǔ)學(xué)習(xí)資料

    今天學(xué)習(xí)了哈很簡單的腳本語言----JavaScript,做了簡單的筆記。放在這里吧,方便翻出來看看。
    2010-11-11
  • javascript的內(nèi)存管理詳解

    javascript的內(nèi)存管理詳解

    這篇文章介紹了javascript的內(nèi)存管理詳解,有需要的朋友可以參考一下
    2013-08-08
  • 三張圖帶你搞懂JavaScript的原型對象與原型鏈

    三張圖帶你搞懂JavaScript的原型對象與原型鏈

    這篇文章介紹了JavaScript的原型對象與原型鏈,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Internet Explorer 11 瀏覽器介紹:別叫我IE

    Internet Explorer 11 瀏覽器介紹:別叫我IE

    這篇文章主要介紹了Internet Explorer 11 瀏覽器介紹:別叫我IE,需要的朋友可以參考下
    2014-09-09

最新評論