这道题能给我解释下吗为什么DIV和buttnon大小有差别吗

这道题能给我解释下吗为什么DIV和buttnon大小有差别吗

正在回答 回答被采纳积分+1

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

2回答
好帮手慕慕子 2021-07-06 09:54:47

同学你好, @“zzz__ZZZ”解释的很棒,浏览器解析时两个元素的盒模型不一样,导致两个元素大小存在差异,具体参考如下解析:

盒模型有两种:一种是“W3C的标准盒模型”,另一种是“ie盒模型”。

1、“W3C的标准盒模型”就是课程中讲到的。在该盒模型下,元素的大小等于“border+padding+内容区”;而div标签默认情况下是按照“W3C的标准盒模型”来计算的,从浏览器上能看到div宽高分别是130、60,如下:

http://img1.sycdn.imooc.com//climg/604dcd2c0933ceef07360225.jpg


其中宽度130就等于设置的宽度100px(内容区),加上左右border共10px,再加上左右padding共20px,高度同理。

2、button按钮默认是按照“ie盒模型”来计算的,在ie盒模型下,设置的width与height是包含border与padding的,所以button按钮的总宽度就是设置的100*30:

http://img1.sycdn.imooc.com//climg/604dcdcd09f5022007150206.jpg

它的padding、border都是“内缩”的:

http://img1.sycdn.imooc.com//climg/604dce26093870c605760251.jpg

http://img1.sycdn.imooc.com//climg/604dce4109606ba704600245.jpg

而我们学过的box-sizing属性,可以改变盒模型,比如给button设置box-sizing属性,就可以让其和上面的div一样大。示例:

http://img1.sycdn.imooc.com//climg/60e3b79f095fe89504400193.jpg

http://img1.sycdn.imooc.com//climg/60e3b7ab090a8adb01860147.jpg

祝学习愉快!

  • 那怎么知道哪些元素是用标准盒模型、哪些用ie盒模型?
    2022-04-03 03:20:51
  • 同学你好,一般来说标准的盒子模型就分为以下几种:

    (1)content(内容区)

    (2)padding(填充区)

    (3)border(边框区)

    (4)margin(外边界区)

    我们在学习的时候,就按照标准盒模型来就行了,因为现在实际工作中已经不考虑ie浏览器了。但是建议在理论基础上把它们的差异记住,因为在面试的时候可能会被问到。开发的话就是按照标准盒模型去开发的。

    祝学习愉快!

    2022-04-04 13:38:42
__Promise 2021-07-06 00:16:59

浏览器解析这两个元素盒模型时,计算标准不一样,可以用box-sizing改成一样的计算方式

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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