国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript獲取元素的計算樣式

2024-05-06 15:39:00
字體:
來源:轉載
供稿:網友

背景

使用css控制頁面有4種方式,分別為行內樣式(內聯樣式)、內嵌式、鏈接式、導入式。

行內樣式(內聯樣式)即寫在html標簽中的style屬性中,如 <div style="width:100px;height:100px;"></div> 內嵌樣式即寫在style標簽中,例如<style type="text/css">div{width:100px; height:100px}</style> 鏈接式即為用link標簽引入css文件,例如<link href="test.css" rel="external nofollow" type="text/css" rel="stylesheet" /> 導入式即為用import引入css文件,例如@import url("test.css")

如果想用javascript獲取一個元素的樣式信息,首先想到的應該是元素的style屬性。但是元素的style屬性僅僅代表了元素的內聯樣式,如果一個元素的部分樣式信息寫在內聯樣式中,一部分寫在外部的css文件中,通過style屬性是不能獲取到元素的完整樣式信息的。因此,需要使用元素的計算樣式才獲取元素的樣式信息。

獲取計算樣式

元素的style下的屬性,默認為空字符串;

獲取計算后的樣式(非行間樣式):
getComputedStyle(element).屬性

獲取到的結果為 帶單位的字符串 ,如 :100px;

寫法: getComputedStyle(box).height;

獲取寬高(尺寸)

ele.clientHeight/Width 支持padding,不包含邊框,元素可視區寬度; ele.offsetWidth/Height 包含padding、border
以上2個,如果設置一個固定值,就以固定值為依據顯示,不會以被內容撐開顯示; ele.scrollWidth/Height被內容撐開的高度(不包含邊框);
無論是否設置固定樣式,都以被內容撐開我顯示結果; 邊框尺寸
    clientLeft/clientTop邊框尺寸 getComputedStyle(box3).borderTopWidth 邊框尺寸

以上獲取到的都是不帶單位的數字,并且范圍為可視區;

絕對位置

元素距離

offsetParent  定位父級,沒有定位父級走body;
offsetLeft  當前元素(左外邊框)到定位父級的(左內邊框)距離;
offsetTop  當前元素(上外邊框)到定位父級的(上內邊框)距離;
獲取的是不帶單位的數字。

如果要使用上面的屬性,一定要做到以下幾點:
1、子集有絕對定位;
2、定位父級也一定要有定位;
3、自己和父級都要有寬高(觸發haslayout,zoom:1);

getBoundingClientRect()

當前元素到頁面可視區的尺寸、距離;

注意:

是跟滾動條走的。
也就是拖動滾動條值會變;

包含:width/height/left/right/top/bottom/x/y

寫法:box2.getBoundingClientRect();

使用定位距離做一個小例子:

 let timer = null; box.onclick =function (){ timer = setInterval(()=>{ box.style.left= box.offsetLeft + 1 +'px'; },16.7) }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 兖州市| 灌阳县| 江安县| 隆化县| 平谷区| 南平市| 永靖县| 盐源县| 昭平县| 通江县| 邯郸县| 绥芬河市| 道孚县| 万山特区| 根河市| 大名县| 丰顺县| 辽阳市| 牡丹江市| 敦煌市| 苍山县| 龙南县| 玛多县| 吴桥县| 洛阳市| 南宁市| 桑植县| 上饶县| 仪陇县| 丹巴县| 蕲春县| 通许县| 彭泽县| 维西| 上蔡县| 个旧市| 平顺县| 大丰市| 冷水江市| 惠安县| 永川市|