百分比布局两列容器在缩放时右侧宽度计算错误怎么办?
我在做两列布局时遇到问题,左边固定宽度200px,右边用百分比计算宽度,写成这样:
<div class="container">
<div class="sidebar">侧边栏</div>
<div class="content">主要内容</div>
</div>
样式设置了.sidebar { width: 200px; }, .content { width: calc(100% – 200px); }。但页面缩放时右边宽度有时会溢出,或者在手机端出现横向滚动条。试过把百分比改成flex布局又破坏了原有设计,有没有更好的百分比计算方式?
如果你非要继续用百分比布局,那就得加点额外的限制,比如这样:
这两种方式都能解决问题,推荐第一种flex布局,代码更简洁,兼容性也够用。不过说实话,布局这玩意儿,能跑就行,别太纠结完美了。
用
box-sizing: border-box;和overflow: hidden;来控制容器的行为,同时给.container加上display: flex;,这样可以让两边更稳定。完整的代码可以这么写:
这样左边固定宽度,右边会自动调整,而且不会出现滚动条。如果非要纯百分比布局,记得加上
box-sizing和margin: 0;这些小细节,不然浏览器默认样式可能会捣乱。试一下这个方法,应该能解决你的问题!