关于offsetWidth的理解

关于offsetWidth的理解

  1. offsetWidth这个值是由 width+border+padding 构成的(应该没错吧)

  2. 如果1的理解没问题,那么在box-sizing:border-box的情况下,offsetWidth是元素的width值,而这个width值由元素本身的宽度+padding值+border值构成。

    也就是box{width:100px,padding:10px,border:10px}。offsetWidth值为100

  3. 在box-sizing:content-box的情况下,offsetWidth是元素的width值+padding值+border值。

    也就是box{width:100px,padding:10px,border:10px}。offsetWidth值为140

    4. 我用代码试了一下。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      padding:0;
      margin:0;
    }
    #box1{
      box-sizing: content-box;
      width: 100px;
      padding:10px;
      border:10px solid #222;
      background-color: red;
    }
    #box2{
      box-sizing: border-box;
      width: 100px;
      padding:10px;
      border:10px solid #222;
      background-color: blue;

    }
  </style>
</head>
<body>
  <div id="box1"></div
  ><div id="box2"></div>
  <script>
    var box1 = document.getElementById('box1');
    var box2 = document.getElementById('box2');

    console.log('content-box: '+ box1.offsetWidth);
    console.log('border-box: '+ box2.offsetWidth);

  </script>
</body>
</html>


http://img1.sycdn.imooc.com//climg/5de9fbec09f2979002050054.jpg

content-box少了1px,不知道是从哪里丢了的,没找到。

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,同学理解的是正确的。关于测试结果:这边也是使用的火狐最新版,结果是可以正常解析的,如下图:

http://img1.sycdn.imooc.com//climg/5deb0cd4093ddf8918050426.jpg

同学测试的效果不准确有可能是缩放了浏览器,建议调整为100%进行测试。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 夜魇丶 提问者 #1
    嗯…缩放是100%的情况下是9.6,在80%的情况下反而是10px了。可能是我哪里设置的问题吧。谢谢老师解答
    2019-12-07 13:21:13
提问者 夜魇丶 2019-12-06 21:36:46

http://img1.sycdn.imooc.com//climg/5dea58ea09d89e5c07760593.jpg


http://img1.sycdn.imooc.com//climg/5dea593709f5c6b809100486.jpg


…应该是浏览器的问题,没关系,我主要问的是offsetWidth的理解,理解没关系的话就行,感谢老师解答。

好帮手慕言 2019-12-06 16:48:48

同学你好,理解的是正确的。老师使用同学提供的代码测试(谷歌,火狐,360都测试了),打印的结果是140。如下图:

http://img1.sycdn.imooc.com//climg/5dea159609a925cd02810155.jpg

同学使用的是什么浏览器呢?可以使用谷歌,火狐浏览器再测试下。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 夜魇丶 #1
    我用的火狐。版本是71.0(64位)。我查看了一下盒模型,虽然border值我设置的是10px,但实际在盒模型上显示的是9.6px,盒子最终宽度是139.2px。图片我贴在这个提问的回答里了
    2019-12-06 21:34:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师