box-sizing属性解析

实际上div等或者display属性设置为block的块级元素默认的都是box-sizing:content-box

boxsizing的值列表

  • content-box 是块级元素默认的。
  • padding-box 因为兼容性不好,只有fireFox支持,chrome和IE浏览器不支持,而且W3C上也并没有列举出来,所以不做讨论。
  • border-box 所有浏览器都兼容。
  • inherit 继承它父元素的 box-sizing 属性的值。

语法规则:

因为box-sizing属性是CSS3所规定的,大部分的CSS3新特性需要在不同浏览器上使用不同的前缀1.申明来解决不同浏览器之间的问题。例如:

box-sizing:content-box;
-o-box-sizing:content-box;
-ms-box-sizing:content-box;
-moz-box-sizing:content-box;
-webkit-box-sizing:content-box;

content-box的作用

加不加都无所谓,因为是默认的。一般用于伪类

表现形式:

border和padding不算入width中。比如:一个100px的宽度的div,如果他的padding值为20px,border为5px,那么他的实际宽度就为100 + 20*2 + 5*2 = 150px。如图:
图片加载失败的时候你就会看见我
和平常所用div元素无区别。

border-box的作用

表现形式:

border和padding算入width中。比如:一个100px的宽度的div,如果他的padding值为20px,border为5px,那么他的内容宽度就为100 - 40*2 - 5*2 = 10px。如图:
图片加载失败的时候你就会看见我

当内容宽度为非正数时就代表内容宽度为0,此时text-align文本对齐方式失效,因为实际内容宽度已经为0了。如果为负数,那么width = border * 2 + padding * 2;

演示效果

<html>
    <head>
        <meta charset="utf8" />
        <title></title>  
        <style type="text/css">
            div{
                margin:0 auto;
            }
            .content-box{
                width: 100px;
                height: 100px;
                padding: 20px;
                border: 5px solid #E6A43F;
                background: blue;
                box-sizing:content-box;
                -o-box-sizing:content-box;
                -moz-box-sizing:content-box;
                -webkit-box-sizing:content-box;
                text-align: center;
                line-height:100px;
            }
            .border-box{
                box-sizing:border-box;
                -moz-box-sizing:border-box;
                -webkit-box-sizing:border-box;
                width: 100px;
                height: 100px;
                padding: 40px;
                border: 5px solid #3DA3EF;
                background: yellow;
                text-align: bottom;
            }
        </style> 
    </head>
    <body>
        <div class="content-box">123456</div>
        <div class="border-box">123456</div>
    </body>
</html>

Markdown

小结

content-box是块级元素的box-sizing属性的默认值,它和我们实际用到的样子并没有区别。

border-box是一个可选值,它会在实际内容宽度为非负数时保持原有宽度不变,无论是加了border还是padding值,而当实际内容宽度为负数时实际宽度则会改变为padding的值加上border的值乘2。

不管是content-box还是border-box,其目的都是为了能够更好的展现我们的内容所以什么时候该用什么时候不该用取决于自己,不论怎么写样式都是为了达到我们所期望的那样,我们能做的就是不断的更新自己的知识,这样才能跟上时代的进步。


  1. -o-…. 表示opera浏览器的前缀.
    -ms-…. 表示IE浏览器的前缀.
    -moz-…. 表示火狐浏览器的前缀.
    -webkit-…. 表示Chrome,safari,36急速浏览器等webkit内核浏览器的前缀.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值