为什么用百分比布局时子元素宽度总是超出父容器?

慕容妍妍 阅读 51

大家好,我在做移动端导航栏时遇到问题。父容器设了width: 100%,里面三个子元素各占33.33%宽度,但实际显示时第三个元素会挤到下一行去。

我已经试过给父容器加font-size: 0解决子元素间距问题,也尝试过把百分比改成calc(33% - 2px),但有时候页面缩放后还是会错位。有没有什么稳定的方法让三个元素平分父容器宽度?

代码大概是这样的:


.parent {
  width: 100%;
  white-space: nowrap;
  font-size: 0;
}
.child {
  display: inline-block;
  width: 33.33%;
  vertical-align: top;
  font-size: 14px;
}

在iPhone XR上测试时,第三个子元素总是被挤到下面,用浏览器开发者工具测量发现总宽度超过了父容器…

我来解答 赞 9 收藏
二维码
手机扫码查看
1 条解答
司空锦锦
问题在于 inline-block 元素受 HTML 空白字符影响,默认会留出间距。用 flex 布局更稳定:

.parent {
display: flex;
width: 100%;
}
.child {
flex: 0 0 33.33%;
width: 33.33%;
}
点赞 5
2026-02-04 10:38