当前位置: 首页 > 知识库问答 >
问题:

前端 - 有了 flex: 0 0 25%; 还要加 max-width: 25%; 吗?

仉臻
2023-12-22

有了 flex: 0 0 25%; 还要加 max-width: 25%; 吗?

做页面栅格的时候,chatGPT 给了我下面的代码

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Equivalent HTML</title>    <style>        .section,        .section-light,        .section-dark,        .section-gray {            display: flex;            padding: 8px;        }        .section > div,        .section-light > div,        .section-dark > div,        .section-gray > div {            padding: 8px;            border: 1px solid #000;            box-sizing: border-box;        }    </style></head><body>    <div class="section" style="display: flex; flex-wrap: wrap;">        <div style="flex: 0 0 100%; max-width: 100%;">            col        </div>    </div>    <div class="section-light" style="display: flex; flex-wrap: wrap;">        <div style="flex: 0 0 50%; max-width: 50%;">            col-12        </div>        <div style="flex: 0 0 50%; max-width: 50%;">            col-12        </div>    </div>    <div class="section-dark" style="display: flex; flex-wrap: wrap;">        <div style="flex: 0 0 33.333%; max-width: 33.333%;">            col-8        </div>        <div style="flex: 0 0 33.333%; max-width: 33.333%;">            col-8        </div>        <div style="flex: 0 0 33.333%; max-width: 33.333%;">            col-8        </div>    </div>    <div class="section-gray" style="display: flex; flex-wrap: wrap;">        <div style="flex: 0 0 25%; max-width: 25%;">            col-6        </div>        <div style="flex: 0 0 25%; max-width: 25%;">            col-6        </div>        <div style="flex: 0 0 25%; max-width: 25%;">            col-6        </div>        <div style="flex: 0 0 25%; max-width: 25%;">            col-6        </div>    </div></body></html>

上面的做垂直分块的时候,同时使用了 flex: 0 0 25%;max-width: 25%; ,但是我浅陋的以为,flex 的 25% 已经等效于 max-width: 25%; 了吧?在加一个 max-width: 25%; 有意义吗?

共有2个答案

步弘和
2023-12-22

不用max-width,里面的内容会将所在的容器撑大的

倪培
2023-12-22

在 CSS 中,flex 属性是用于设置 flex 容器的子项的。flex: 0 0 25%; 意味着子项的 flex-growflex-shrink 都被设置为 0,而 flex-basis 被设置为 25%。这意味着子项的初始大小是 25%,并且在 flex 容器中的其他子项都不改变大小时,它会保持这个大小。

max-width 属性是用于设置元素的的最大宽度。max-width: 25%; 意味着元素的宽度不能超过其父元素的 25%。

在这种情况下,两者可以同时使用,并且可以相互补充。例如,如果你希望一个元素在 flex 容器中始终占据 25% 的空间,即使它的内容超出了这个大小,那么你可以使用 flex: 0 0 25%;。但是,如果你希望这个元素的宽度不能超过其父元素的 25%,那么你可以使用 max-width: 25%;

在给出的代码中,.section-gray > div 的样式同时设置了 flex: 0 0 25%;max-width: 25%;。这意味着这些 div 的初始大小都是 25%,并且在 flex 容器中的其他 div 不改变大小时,它们会保持这个大小。同时,这些 div 的宽度不会超过其父元素的 25%。这是非常有意义的,因为在响应式设计中,我们通常希望元素能在不同的屏幕尺寸下保持一致的布局。

 类似资料:
  • 描述 (Description) max-width属性用于设置元素宽度的上限。 可能的值 (Possible Values) length - 任何长度单位。 元素的宽度值永远不会超过此距离。 percentage - 将元素的宽度限制为最多包含块的宽度的百分比。 none - 元素的宽度没有限制。 适用于 (Applies to) 除了未替换的内联元素和表元素之外的所有HTML元素。 DOM语

  • 为什么: 执行与 第一个是有意义的,我说宽度是98%,但不要超过1140px宽。 然而,第二个会说页面是1140px宽,但然后会去和98%的页面一样大,对吧?所以例如超过1140px...但显然不是,因为它和第一个一样。 有人能解释为什么吗?

  • 问题内容: 关于此有很多问题和文章,但据我所知,尚无定论。我能找到的最好的总结是 flex-basis 允许您在计算其他任何内容之前指定元素的初始/开始大小。它可以是百分比或绝对值。 …本身并没有过多说明具有 flex-basis 设置的元素的行为。以我目前对flexbox的了解,我不明白为什么那也不能描述 宽度 。 我想知道 flex-basis 与实际 宽度 有何不同: 如果我用 flex-b

  • 问题内容: 我最近开始使用flexbox,经常会遇到需要在主轴之间分配空间的情况。 我经常在和之间犹豫。例如,如果我要一项测量2个量度,而另一项测量100%,则我有两个选择。我可以设置和,或和。 有时,如果我希望一个元素扩大其余空间,我可以这样做或。 我该如何选择?使用width与flex-grow有什么区别/注意事项? 问题答案: 和是两个完全不同的CSS特性。 该属性用于定义元素的宽度。 该属

  • 在编写CSS媒体查询时,有没有什么方法可以用“或”逻辑指定多个条件? 我正在尝试这样做:

  • 本文向大家介绍如何让IE6支持min-width和max-width?相关面试题,主要包含被问及如何让IE6支持min-width和max-width?时的应答技巧和注意事项,需要的朋友参考一下 利用IE特有的css语法 参考文章