border-box和content-box最直观的区别和解释

Chrome浏览器box-sizing默认是content-box,content-box就是元素的width和height决定了元素的宽高,这意味着元素的border和padding等不能算在元素的width和height中 ,padding和border的改变不能改变width和height的值。

 

代码:

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href=""/>
        <style type="text/css">
            .border-box{
                height: 100px;
                width: 300px;
                padding: 20px;
                background: skyblue;
                box-sizing: content-box;
            }
        </style>
    </head>
    <body>
        <div class="border-box">这是content-box的高度</div>
        <div class="border-box">这是content-box的高度</div>
        <div class="border-box">这是content-box的高度</div>
    </body>
</html>

控制台元素结构如下:



border-box就是用元素内容和padding和border一起决定width和height,啥意思,就是width和元素的内容以及padding和border相互制约。下面用几句话简洁解释一下。
•width和height改变,paddign和border不改变时,元素内容的宽高会发生相应的改变,改变的值就是width和height改变的值。
•paddign和border改变,width和height不改变时,元素内容的宽高会发生相应的改变,改变的值就是width和height改变的值。

•元素内容的宽高等于:元素的宽高 - ( border + padding )

代码:

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href=""/>
        <style type="text/css">
            .border-box{
                height: 100px;
                width: 300px;
                padding: 20px;
                background: skyblue;
                box-sizing: border-box;
            }
        </style>
    </head>
    <body>
        <div class="border-box">这是border-box的高度</div>
        <div class="border-box">这是border-box的高度</div>
        <div class="border-box">这是border-box的高度</div>
    </body>
</html>

控制台元素结构:

 

在实际工作的场景和目的

我更喜欢用border-box,因为border-box更灵活一点,举个例子,我在业务中遇到一个问题,我的商品详情页的一个盒子是高度自适应的,为146px,但是在ie8浏览器上显示为146.8px,如何解决,如果对盒子设置height:146px;则会出现被撑高的情况,因为box-sizing默认为content-box,你给元素设置宽高,只是给元素内容设置宽高,你元素的总高度是heigtht + border + padding所以就会出现撑高,解决方法就是给当前的盒子设置box-sizing: border-box这样你设置高度为146px时,会默然将元素内容的高度进行相应减少来保证整体高度为146px,这个最大的好处就是你这个盒子有好几个,而且有不同的padding和border值,解决这个的最好的方法就是给盒子设置border-box

原文地址:https://blog.csdn.net/andynikolas/article/details/79169798

  • 24
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值