久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript中clientWidth,offsetWidth,scrollWidth的區(qū)別

瀏覽:138日期:2023-10-05 10:51:31
一、概念

它們都是Element的屬性,表示元素的寬度:

Element.clientWidth 內(nèi)容+內(nèi)邊距-滾動條-----不包括邊框和外邊距 == 可視內(nèi)容Element.scrollWidth 內(nèi)容+內(nèi)邊距+溢出尺寸-----不包括邊框和外邊距 ==實(shí)際內(nèi)容Element.offsetWidth 元素的寬度(內(nèi)容+內(nèi)邊距+邊框+滾動條)==整體,整個控件

二、舉例1、僅有橫向滾動條的情況

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>測試scrollWidth、clientWidth、offsetWidth</title> <style type='text/css'> body, html { margin: 0px; padding: 0px; } #father { width: 300px; overflow: auto; padding: 10px; background: rebeccapurple; border: 10px solid red; margin: 20px; } #child { height: 100px; width: 1000px; padding: 10px; border: 20px solid #ffcc99; margin: 30px; } </style></head><body><div id='father'> <div id='child'></div></div><script type='text/javascript'> var child = document.getElementById('child'); console.log('child.width:', window.getComputedStyle(child).width); //內(nèi)容的寬度:1000px console.log('child.clientWidth:', child.clientWidth); //內(nèi)容+內(nèi)邊距-滾動條-----不包括邊框和外邊距 == 可視內(nèi)容 1020px console.log('child.scrollWidth:', child.scrollWidth); //內(nèi)容+內(nèi)邊距+溢出尺寸-----不包括邊框和外邊距 ==實(shí)際內(nèi)容 1020px console.log('child.offsetWidth:', child.offsetWidth); //元素的寬度(內(nèi)容+內(nèi)邊距+邊框+滾動條)==整體,整個控件 1060px var father = document.getElementById('father'); console.log('father.width:', window.getComputedStyle(father).width); //內(nèi)容的寬度:300px console.log('father.clientWidth:', father.clientWidth); //內(nèi)容+內(nèi)邊距-滾動條-----不包括邊框和外邊距 == 可視內(nèi)容 320px console.log('father.scrollWidth:', father.scrollWidth); //內(nèi)容+內(nèi)邊距+溢出尺寸-----不包括邊框和外邊距 ==實(shí)際內(nèi)容 1100px console.log('father.offsetWidth:', father.offsetWidth); //元素的寬度(內(nèi)容+內(nèi)邊距+邊框+滾動條)==整體,整個控件 340px</script></body></html>

僅有橫向滾動條的情況時,父元素收受到子元素寬度的影響,其他比較特別的是scrollWidth。

父元素的scrollWidth是:子元素的content+padding+border+子元素一邊的margin+父元素一邊的padding。

2、有橫向滾動條和豎向滾動條的情況

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>測試scrollWidth、clientWidth、offsetWidth</title> <style type='text/css'> body, html { margin: 0px; padding: 0px; } #father { height: 50px; width: 300px; overflow: auto; padding: 10px; background: rebeccapurple; border: 10px solid red; margin: 20px; } #child { height: 100px; width: 1000px; padding: 10px; border: 20px solid #ffcc99; margin: 30px; } </style></head><body><div id='father'> <div id='child'></div></div><script type='text/javascript'> var child = document.getElementById('child'); console.log('child.width:', window.getComputedStyle(child).width); //內(nèi)容的寬度:1000px console.log('child.clientWidth:', child.clientWidth); //內(nèi)容+內(nèi)邊距-滾動條-----不包括邊框和外邊距 == 可視內(nèi)容 1020px console.log('child.scrollWidth:', child.scrollWidth); //內(nèi)容+內(nèi)邊距+溢出尺寸-----不包括邊框和外邊距 ==實(shí)際內(nèi)容 1020px console.log('child.offsetWidth:', child.offsetWidth); //元素的寬度(內(nèi)容+內(nèi)邊距+邊框+滾動條)==整體,整個控件 1060px var father = document.getElementById('father'); console.log('father.width:', window.getComputedStyle(father).width); //內(nèi)容的寬度:285px console.log('father.clientWidth:', father.clientWidth); //內(nèi)容+內(nèi)邊距-滾動條-----不包括邊框和外邊距 == 可視內(nèi)容 305px console.log('father.scrollWidth:', father.scrollWidth); //內(nèi)容+內(nèi)邊距+溢出尺寸-----不包括邊框和外邊距 ==實(shí)際內(nèi)容 1100px console.log('father.offsetWidth:', father.offsetWidth); //元素的寬度(內(nèi)容+內(nèi)邊距+邊框+滾動條)==整體,整個控件 340px</script></body></html>

父元素的width為:父元素的content寬度-滾動條的寬度(大約為15px)

父元素的clientWidth為:父元素的content寬度+父元素padding寬度-滾動條寬度(大約為15px)

以上就是Element中clientWidth,offsetWidth,scrollWidth的區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于clientWidth,offsetWidth,scrollWidth的區(qū)別的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 定结县| 女性| 南丰县| 北票市| 佛山市| 东方市| 图木舒克市| 汉寿县| 罗源县| 伊吾县| 成都市| 庐江县| 贞丰县| 华阴市| 松阳县| 丹寨县| 庆安县| 慈利县| 且末县| 榆树市| 石城县| 尼木县| 镶黄旗| 哈尔滨市| 连城县| 宜春市| 连云港市| 饶平县| 邵东县| 石台县| 汝阳县| 临邑县| 得荣县| 邹城市| 增城市| 介休市| 瓮安县| 龙海市| 汽车| 泽库县| 武穴市|