js各种宽高的总结

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+滚动条宽度



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值