CSS自减盒子的弊端

一.自减盒子的取值

box-sizing属性有两个可选值:

  1. content-box(默认值):默认的盒模型。元素的宽度和高度仅包括内容区域,不包括内边距、边框和外边距。在计算尺寸时,内边距和边框会增加元素的实际尺寸。

  2. border-box:元素的宽度和高度包括内容区域、内边距和边框。在计算尺寸时,内边距和边框不会增加元素的实际尺寸,它们会从内容区域中减去。

示例用法:



二.自减盒子的弊端:

    1. 布局不一致性:由于border-box考虑内边距和边框在内,这在设置相对定位或定位上下文时可能会导致布局不一致。尺寸计算的不一致性可能使得元素的位置和布局出现预料之外的变化,导致困惑和难以维护的布局。

      html结构:

        

       css样式:

     结果:导致各分一半的盒子变小,元素之间的布局发生变化


     2.盒模型混淆:使用border-box盒模型时,为元素指定的尺寸(包括宽度和高度)将包括内边距和边框。这可能导致在处理复杂布局时难以准确计算和控制元素的尺寸,特别是在嵌套和相对定位的元素时。

      html结构:

 

     css样式: 

 

 


     3.当在使用box-sizing: border-box盒模型时,在悬停状态下添加边框可能会导致盒子抖动

   html结构:

  css样式: 

 

解决代码:

 

☆问题出险的根本原因 : 由于边框会从总宽度中减去,当我们悬停在盒子上时,边框的出现将会导致盒子的总尺寸增加1px,从而导致盒子的抖动效果。这是因为在悬停状态下,从无边框到有边框的变化会影响盒子的尺寸

☆解决办法 : 提前添加同样的透明边框 (所以悬停之后盒子并未撑大则不会抖动)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值