box-sizing的细致用法

通常我们使用width:100%给一个div限制宽度后,再使用border-right:1px solid #eee;后

即使给div加上了float:left; width:50%;

也不能让两个相同的div并列(如下图:)





我们已经看到了效果,那么为什么这样的写法不可以让两个宽度为50%的div并列呢?

相信有点工作经验的小伙伴们已经早就发现了症结所在,


对滴,正是div的border:1px;影响了布局


50%+50%+1px+1px+1px+1px>100%;

正是因为超出了父容器的100%才导致了问题所在。

那么也有小伙伴认为父容器可以不限制为100%,就不会出现此类情况,

但是亲们有没有仔细的考虑过,在父容器没有限制宽度的情况下,div是可以无限右浮的,

即使我们可以每隔两个div加上一个clear:both用以清除浮动,且不论这样的写法有没有违背常规,

抛开这点不谈,他还有这另一个致命的问题,

那就是多出的4px会致使屏幕可以左右翻动,

在移动设备上,即使只是2px的翻动也会令用户觉得不舒服,


言归正传,那么我是如何解决的呢?


只需要在div样式中加入box-sizing:border-box;这条样式就可以轻松解决,来看看效果









上图证明css3中出台的box-sizing:border-box;是好样的


现在让我们好好的认识一下box-sizing 属性

box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。

例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box"。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。

意思是什么呢?

说明只要在在元素样式内加入这一条,不论你的padding,border有多么牛叉,元素的宽高数值也不会撑破,它只会牺牲元素内部的空间。

这么说大家可能仍有些不明白

上两个图:


/********************************没加box-sizing属性前*****************************************************/




/********************************加了box-sizing属性后*****************************************************/





好了,说道这里我想贡献的也贡献完了,运用到你们项目中去,慢慢你们就能发现box-sizing属性的强大之处,

第一次写博客,只是抱着玩玩的心态,大家可以工作之余和我多聊聊,QQ:1098654043(小鱼)


转载请自觉注明出处@不羁的狂鱼-喻文强,谢谢


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值