flex布局+overflow后, 右侧边距消失了

发布于 2022-09-07 04:30:41 字数 906 浏览 20 评论 0

css: 
    .flex{
        width: 500px; height: 50px;
        border: 1px solid pink;
        overflow: auto;
        display: flex; align-items: center;
    }
    .flex-child{
        min-width: 25%;
        border: 1px solid violet;
        margin: 0 5px;
        flex: 0 1 25%; display: flex; align-items: center; justify-content: center;
    }
html: 
    <div class="flex">
        <div class="flex-child">1</div>
        <div class="flex-child">2</div>
        <div class="flex-child">3</div>
        <div class="flex-child">4</div>
        <div class="flex-child">5</div>
    </div>

clipboard.png
clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云巢 2022-09-14 04:30:41

跟 flex 没关系,是子元素大小超出父元素引起的。

<div class='wrapper'>
    <div class="inner">
    </div>
</div>
.wrapper {
    width: 100px;
    overflow: auto;
}
.inner {
    width: 120px;
}

也会出现这种情况,包括父容器的padding-right,也不是无效,还是有的,但是没起到影响布局的效果。
应该是,超出情况下在两侧布局样式无法同时满足时,默认左上为布局起点,所以优先满足margin-left等左侧布局样式。

戏剧牡丹亭 2022-09-14 04:30:41

楼主你这个伪元素的content里面是空的,我这边不生效。
下面这个可以生效

.flex::after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden; //占位但不可见
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文