首页 > web前端 > css教程 > 边距如何影响 Flexbox 布局中的 Flex-Grow 大小调整?

边距如何影响 Flexbox 布局中的 Flex-Grow 大小调整?

Linda Hamilton
发布: 2024-12-17 22:00:17
原创
445 人浏览过

How Does Margin Affect Flex-Grow Sizing in Flexbox Layouts?

使用 Flex-Grow

调整 Flex 元素的大小在 Flexbox 布局中,Flex 项目根据其

flex-grow 调整大小

属性,指定每个项目应占用多少可用空间。但是,某些因素可能会影响 Flex 项目的计算大小,包括内容和边距。

问题概述

.numbers {
    display: flex;
    flex-direction: column;
}

.row {
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    justify-content: space-between;
}

.button {
    display: flex;
    flex-grow: 1;
    justify-content: center;
    align-items: center;
    margin: 5px;
    border-radius: 5px;
    border: 1px solid gray;
    background: rgba(255, 255, 255, 0.2);
    cursor: pointer;
}

#number0 {
    flex-grow: 2;
}

#colon {
    flex-grow: 1;
}
登录后复制
请考虑以下代码:
<div class="numbers">
    <div class="row">
        <div class="button number">
登录后复制

在此示例中,我们期望“0”按钮的宽度是另一个按钮的两倍按钮和冒号按钮的宽度为一半。但是,这些按钮的对齐方式似乎略有偏差。

问题原因

出现此问题的原因是每行上的可用空间由下式确定:按钮的总宽度和应用于按钮的边距。在我们的示例中,前三行各有两个水平边距,而第四行只有一个。这会导致第四行比其他行拥有更多的可用空间,从而影响弹性项目之间的空间分配。

使用 Flex-Basis 实现更可靠的大小调整要解决这个问题,建议使用 flex-basis

而不是

flex-grow
.button {
    flex-basis: 33.33%;
}

#number0 {
    flex-basis: calc(66.67% + 10px);
}

* {
    box-sizing: border-box;
}
登录后复制
用于更可靠地调整弹性项目的大小。 Flex-basis 设置项目的初始大小,考虑其内容和边距。通过为每个按钮指定 flex-basis,我们可以确保它们都被赋予相同的空间量,无论边距如何。

这是更正后的代码:通过更新flex-basis,我们可以实现按钮所需的对齐方式,“0”按钮的宽度是其他按钮的两倍,冒号按钮的宽度是其他按钮的一半宽。

以上是边距如何影响 Flexbox 布局中的 Flex-Grow 大小调整?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板