UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1973|回复: 0
收起左侧

[其它] CSS,Flex瀑布流父元素宽度的问题

[复制链接]
GDDDDWWWW

主题

0

回帖

UD

新手上路

UID
48
积分
33
注册时间
2022-5-18
最后登录
1970-1-1
2023-2-21 20:58:18 | 显示全部楼层 |阅读模式
如下代码,我通过Flex写了一个类似瀑布流的父元素。
宽度我不希望固定,而是希望根据子元素的数量将父元素撑大。
于是我设置了一个width: max-content。

但子元素明明换行了,父元素却没有撑开。

CSS,Flex瀑布流父元素宽度的问题 - GDDDDWWWW_UltraDebug

[XHTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="CN">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
 
    <style>
        .father {
            display: flex;
            flex-direction: column;
            flex-wrap: wrap;
            background-color: chartreuse;
            width: max-content;
            max-height: 30vh;
        }
.father>div {
            border: 1px solid saddlebrown;
            width: 100px;
            height: 20px;
            display: grid;
            place-items: center;
        }
    </style>
</head>
 
<body>
    <div class="father">
        <!-- 模拟瀑布流,子元素数量不定 -->
        <div>D1</div>
        <div>D2</div>
        <div>D3</div>
        <div>D4</div>
        <div>D5</div>
        <div>D6</div>
        <div>D7</div>
        <div>D8</div>
        <div>D9</div>
        <div>D10</div>
        <div>D11</div>
        <div>D12</div>
        <div>D13</div>
        <div>D14</div>
        <div>D15</div>
        <div>D16</div>
    </div>
 
</body>
 
</html>
SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
解决办法

方案一:
[CSS] 纯文本查看 复制代码
.father {
  display: flex;
  flex-wrap: wrap;
  background-color: chartreuse;
  max-height: 30vh;
}
.father > div {
  border: 1px solid saddlebrown;
  flex: 0 1 100px;
  height: 20px;
  display: inline-grid;
  place-items: center;
}
SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
方案二:
[CSS] 纯文本查看 复制代码
.father {
  display: grid;
  grid-template-columns: repeat(auto-fill, 100px);
  background-color: chartreuse;
  max-height: 30vh;
}
 
.father > div {
  border: 1px solid saddlebrown;
  height: 20px;
  display: inline-grid;
  place-items: center;
}
SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-18 07:30 , Processed in 0.029706 second(s), 12 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表