偏移 在使用一些小技巧之前,IE和Mozilla已經添加了一個比較 " /> h视频在线观看视频观看,嗯啊在线观看免费影院,成人免费视频视频在线不卡

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

JavaScript CSS修改學習第二章 樣式

另外,有時候你也許想知道添加到一個元素或者鏈接上的樣式的具體內容。而style屬性只能讀取元素的內聯形式的樣式,所以如果你想讀取其他樣式就得另想辦法了。

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

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

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

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

代碼
代碼依舊很簡單:
復制代碼 代碼如下:
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和想訪問的樣式名稱
復制代碼 代碼如下: function getStyle(el,styleProp) {
然后我們把元素保存在x中:
復制代碼 代碼如下: var x = document.getElementById(el);
首先是IE的方法:元素的currentStyle屬性
復制代碼 代碼如下: 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);

然后給調用這個函數的程序返回y。
復制代碼 代碼如下: return y;
}

雖然這個函數不是很完美,但是也已經力所能及了。

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

JavaScript技術JavaScript CSS修改學習第二章 樣式,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲伊人久久一次 | 欧美成人全部费免网站 | 国产女人成人精品视频 | 影音先锋中文一区亚洲 | 牛牛碰在线视频 | 亚洲欧美激情视频 | 伊人网综合 | 亚洲国产视频网 | 精品国产一区二区三区在线 | 久久伊人精品青青草原高清 | 成人在线观看视频免费 | 国产视频福利在线 | 国产精品免费观看视频 | 韩国精品一区二区久久 | 91精品推荐 | 亚洲一卡2卡4卡5卡6卡在线99 | 国产码一区二区三区 | 99成人精品 | 日韩精品一区二区三区视频网 | 国产在线精品一区二区不卡 | 国产手机在线国内精品 | 日韩精品一级a毛片 | 一本一道dvd在线播放器 | 国内高清自拍 | 美女很黄很黄是免费的 | 激情婷婷在线 | 中文字幕久热精品视频免费 | 日韩a无v码在线播放免费 | 精品福利一区 | 亚洲黄色小说视频 | 黄色国产在线观看 | 色婷婷视频在线观看 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 久久久亚洲国产精品主播 | 起碰免费视频97网站 | 狠狠色噜噜狠狠狠四色米奇 | 91亚洲精品视频 | 91精品国产色综合久久不 | 色月| 国产日韩中文字幕 | 国产福利萌白酱喷水视频铁牛 |