国产探花免费观看_亚洲丰满少妇自慰呻吟_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) }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 吉首市| 海原县| 象州县| 泸州市| 辽宁省| 体育| 南木林县| 广昌县| 藁城市| 黑水县| 肃宁县| 鹤壁市| 三明市| 南阳市| 阳泉市| 蛟河市| 历史| 隆昌县| 伊川县| 巩义市| 武义县| 盐池县| 易门县| 巩义市| 柳江县| 肃南| 大余县| 申扎县| 沁水县| 东乌珠穆沁旗| 新宾| 友谊县| 克山县| 图们市| 龙泉市| 和平区| 蓝山县| 平安县| 托克逊县| 长泰县| 九龙坡区|