js各種寬高的總結
阿新 • • 發佈:2017-10-18
doc round highlight 20px ttr nth setw get 寬高
1.clientWidth和clientHeight
指元素的可視部分寬度和高度,就是padding+content
如果沒有滾動條,就是設定的寬度和高度
如果有滾動條,就是設定的寬度和高度減去滾動條的寬度和高度
- body{
- border:20px solid #ccc;
- margin:10px;
- padding:40px;
- background:#eee;
- height:350px;
- width:500px;
- overflow:scroll
- }
- document.body.clientWidth //500+80=580
- document.body.clientHeight//350+80=430
- #mydiv{
- width:200px;
- height:200px;
- background:red;
- border:1px solid #eee;
- overflow:auto;
- }
- //在div中添加文字,出現滾動條
- var mydiv=document.getElementById(‘mydiv‘);
- mydiv.clientHeight//200
- mydiv.clientWidth//200-7
- 小結:
- 無padding無滾動:clientWidth=style.width
- 有padding無滾動:clientWidth=style.width+padding*2
- 有padding有滾動:clientWidth=style.width+padding*2-滾動軸寬度
- clientLeft和clientTop
- 這一對屬性是讀取元素border的寬度和高度
- clientTop=border-top的border-width
- clientLeft=border-left的border-width
2.offsetWidth offsetHeight
就是padding+content+border
- body{
- border:20px solid #ccc;
- margin:10px;
- padding:40px;
- background:#eee;
- height:350px;
- width:500px;
- overflow:scroll
- }
- document.body.offsetWidth //500+80+40=620
- document.body.offsetHeight//350+80+40=470
- 小結:
- 無padding無滾動無border
- offsetWidth=clientWidth=style.width
- 有padding無滾動有border
- offsetWidth=style.width+style.padding*2+(border-width)*2
- offsetWidth=clientWidth+(border-width)*2
- 有padding有滾動有border
- offsetWidth=style.width+style.padding*2+(border-width)*2+滾動條寬度
js各種寬高的總結