css弹性盒子容器与子元素比例分配方法

CSS弹性盒子通过flex-grow、flex-shrink和flex-basis协同控制子元素在主轴上的尺寸分配。flex-basis设定子元素的初始尺寸,flex-grow决定剩余空间如何按比例分配,flex-shrink控制空间不足时的收缩比例。例如,设置flex: 1 1 0使元素从零基准生长并占据可用空间,而flex: 0 0 200px则固定宽度且不伸缩。结合媒体查询与flex-wrap可实现响应式多列布局,通过调整三属性组合灵活应对不同设计需求。

css弹性盒子容器与子元素比例分配方法

CSS弹性盒子在容器中分配子元素比例的核心机制,并非简单地设置一个固定比例值,而是通过控制子元素如何“生长”(flex-grow)、“收缩”(flex-shrink)以及它们的“初始尺寸”(flex-basis)来动态管理可用空间的。这套机制赋予了我们极大的灵活性,让布局能够根据内容和视口尺寸智能地调整。

解决方案

要实现CSS弹性盒子容器与子元素的比例分配,主要依靠 flex 属性的三个子属性:flex-grow、flex-shrink 和 flex-basis。它们共同决定了子元素在主轴上的尺寸表现。

flex-grow (生长因子): 当容器有剩余空间时,它定义了子元素将如何“瓜分”这些额外的空间。一个 flex-grow 值为2的元素,会比值为1的元素多占据一倍的剩余空间。flex-shrink (收缩因子): 当容器空间不足时,它定义了子元素将如何“牺牲”自己的尺寸来避免溢出。默认值为1,意味着所有子元素会等比例收缩。flex-basis (基准尺寸): 这是子元素在分配任何额外空间或收缩之前,所占据的理想尺寸。它可以是像素值、百分比,或者 auto(通常取内容宽度或设置的 width)。

通常,我们会使用 flex 简写属性来设置这三个值,例如 flex: 1 1 auto; 或 flex: 0 0 200px;。通过巧妙地组合这些值,就能实现各种复杂的比例分配需求。

理解 flex-grow、flex-shrink 与 flex-basis 的核心作用

在我看来,理解这三个属性的工作原理,是掌握Flexbox布局的关键一步。它们不是孤立存在的,而是一个协同工作的系统。

立即学习“前端免费学习笔记(深入)”;

flex-basis 就像是每个子元素在舞台上亮相时的“初始站位”。你可以给它一个具体的宽度,比如 200px,或者让它根据内容自动调整 (auto)。这个尺寸是Flexbox在计算如何分配剩余空间(或处理空间不足)之前的基准。

然后,flex-grow 登场了。如果容器里还有多余的空间,flex-grow 就决定了哪个子元素能“吃掉”多少。比如,你有三个子元素,都设置 flex-basis: 0;,然后分别设置 flex-grow: 1; flex-grow: 2; flex-grow: 1;。这意味着,中间那个元素会占据总剩余空间的一半,而两边的各占四分之一。这里 flex-basis: 0; 是一个常用技巧,它让所有元素从零开始“生长”,确保 flex-grow 完全控制了空间的分配比例,而不是受初始内容尺寸的影响。

.container {  display: flex;  width: 600px; /* 假设容器总宽 */  border: 1px solid #ccc;}.item {  height: 50px;  background-color: lightblue;  margin: 5px;  text-align: center;  line-height: 50px;  color: #333;}.item-1 {  flex: 1 1 0; /* flex-grow: 1, flex-shrink: 1, flex-basis: 0 */  background-color: #f0f8ff;}.item-2 {  flex: 2 1 0; /* flex-grow: 2, flex-shrink: 1, flex-basis: 0 */  background-color: #add8e6;}.item-3 {  flex: 1 1 0; /* flex-grow: 1, flex-shrink: 1, flex-basis: 0 */  background-color: #f0f8ff;}

在这个例子中,如果容器有足够空间,item-2会比item-1和item-3宽两倍。

最后是 flex-shrink。当容器空间不够,子元素需要收缩时,flex-shrink 决定了收缩的比例。这在移动端布局中特别有用,确保内容不会溢出。默认值是1,意味着所有元素都会按比例收缩。如果你不希望某个元素收缩,可以设置 flex-shrink: 0;。

实践中的比例分配:固定尺寸与弹性增长的结合

实际开发中,我们很少会让所有元素都纯粹地按 flex-grow 比例分配。更多时候,我们会遇到一些元素需要固定宽度(比如侧边栏),而另一些元素则需要弹性填充剩余空间(比如主内容区)。

要实现这种混合模式,关键在于 flex-basis 和 flex-grow 的配合。

考虑一个常见的布局:一个固定宽度的左侧导航栏,和一个占据剩余空间的主内容区。

音疯 音疯

音疯是昆仑万维推出的一个AI音乐创作平台,每日可以免费生成6首歌曲。

音疯 146 查看详情 音疯

.container {  display: flex;  height: 300px;  border: 1px solid #ccc;}.sidebar {  flex: 0 0 200px; /* 不生长,不收缩,基准宽度200px */  background-color: #f0f8ff;  padding: 20px;  box-sizing: border-box; /* 确保padding不增加宽度 */}.main-content {  flex: 1 1 0; /* 生长,收缩,基准宽度为0(或auto),占据剩余空间 */  background-color: #add8e6;  padding: 20px;  box-sizing: border-box;}

这里,.sidebar 设置 flex: 0 0 200px;,明确告诉浏览器:我不需要你给我额外的空间(flex-grow: 0),也不要在我空间不足时收缩我(flex-shrink: 0),我的初始宽度就是 200px。而 .main-content 设置 flex: 1 1 0;,意味着它会尽可能地生长来填充所有剩余空间。flex-basis: 0; 在这里非常重要,它确保了 main-content 的宽度完全由 flex-grow 来决定,而不是受其内容或 width 属性的初始影响。

另一个场景是三栏布局,中间内容区比两边侧边栏宽。

.container {  display: flex;  width: 900px; /* 假设容器总宽 */  border: 1px solid #ccc;}.left-sidebar, .right-sidebar {  flex: 1 1 0; /* 它们会按1:1的比例分享空间 */  background-color: #f0f8ff;  padding: 10px;  text-align: center;}.middle-content {  flex: 2 1 0; /* 中间内容区会占据两倍的空间 */  background-color: #add8e6;  padding: 10px;  text-align: center;}

在这个例子中,所有元素的 flex-basis 都设为 0,这样它们的宽度就完全由 flex-grow 的比例来决定,实现了 1:2:1 的宽度分配。这种方式在很多产品页面布局中很常见,比如商品列表、新闻聚合等。

响应式设计中 Flexbox 比例分配的技巧与挑战

在响应式设计中,Flexbox的比例分配能力简直是如虎添翼。我们希望在桌面端呈现特定的比例,而在移动端则可能需要完全不同的布局,甚至是从水平布局变为垂直堆叠。

一个常见的技巧是结合媒体查询(Media Queries)来调整 flex 属性。

比如,在桌面端我们希望是三列布局,但在小屏幕上,我们可能希望它们垂直堆叠,或者变成两列。

/* 默认(移动端优先) */.item {  flex: 1 1 100%; /* 默认情况下,每个item占据一行 */  margin-bottom: 10px;  background-color: #f0f8ff;  padding: 15px;  box-sizing: border-box;}/* 中等屏幕(比如平板) */@media (min-width: 768px) {  .item {    flex: 1 1 calc(50% - 20px); /* 两列布局,考虑margin */    /* 这里的calc(50% - 20px)是为了处理item之间的间距,       如果使用gap属性则可以更简洁 */    margin-right: 20px;    margin-bottom: 20px;  }  .item:nth-child(2n) {    margin-right: 0; /* 每行最后一个item不设右边距 */  }}/* 桌面屏幕 */@media (min-width: 1024px) {  .item {    flex: 1 1 calc(33.333% - 20px); /* 三列布局 */  }  .item:nth-child(2n) {    margin-right: 20px; /* 重置中屏的样式 */  }  .item:nth-child(3n) {    margin-right: 0;  }}

这里我展示了一个从单列到两列再到三列的渐进增强策略。flex-basis 的百分比结合 calc() 可以很灵活地控制每个元素的初始宽度,再让 flex-grow 去处理剩余空间。

挑战在于,当 flex-basis 设置为百分比时,如果容器宽度变化,子元素的实际宽度也会跟着变化。有时候我们可能会遇到内容溢出,或者元素收缩得太厉害导致内容难以阅读。这时,可以考虑设置 min-width 或 max-width 来辅助控制,或者调整 flex-shrink 的值。

另一个常见的场景是,当子元素数量不确定时,我们希望它们能自动换行。这时 flex-wrap: wrap; 就派上用场了。它会把超出容器宽度的子元素推到下一行,而每一行内部的元素仍然会根据它们的 flex 属性进行空间分配。这让布局在内容量不确定时也能保持优雅。

调试Flexbox布局时,浏览器开发者工具是你的好帮手。它能直观地显示每个Flex项的尺寸、flex-basis、flex-grow 和 flex-shrink 的计算结果,帮助你快速定位问题。我个人经常会调整 flex-basis 和 flex-grow 的值,看看布局如何响应,这比纯粹的理论分析要有效得多。

以上就是css弹性盒子容器与子元素比例分配方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1059119.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
vivo浏览器怎么把书签导入导出 vivo浏览器同步与备份收藏夹数据
上一篇 2025年12月2日 05:41:32
你的 iPhone 岂容他人窥探,苹果 iOS 18 新增锁定 / 隐藏 App 功能:捍卫你的私人空间
下一篇 2025年12月2日 05:41:40

相关推荐

  • 如何修复电脑硬盘"

    如何修复电脑硬盘"如何修复电脑硬盘"如何修复电脑硬盘"如何修复电脑硬盘"

    最近有小伙伴在后台私信小编说,电脑硬盘坏了能不能修复,该如何修复电脑硬盘。因此,针对该问题,小编就马上跑来整理出来了一些相关于这个方面的内容,那么小伙伴下面就随小编一起来看看如何修复电脑硬盘的方法吧。 众所周知硬盘是电脑中一个非常重要的硬件设备,是电脑主要的存储媒介之一。不过最近有童鞋向小编反映说自…

    2026年9月25日 • 用户投稿
    100
  • sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程

    sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程

    首先安装PHP CS Fixer工具并将其放置于系统指定目录,确保PHP环境正常;接着在Sublime Text中通过Package Control安装PHP CS Fixer插件;然后在插件设置中配置php_cs_fixer_exec_path和php_path指向正确的PHAR文件和PHP可执行…

    2026年9月25日 • 用户投稿
    100
  • uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式

    uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式

    首先可通过书签管理长按添加,其次在浏览时点击菜单选择添加到桌面,最后部分版本可直接使用工具栏+按钮创建快捷方式。 如果您希望快速访问常用网站,可以通过将书签添加到UC浏览器主页来实现便捷操作。这一功能可以帮助您在启动浏览器时一键跳转至目标页面。 本文运行环境:小米14,Android 14 一、通过…

    2026年9月25日 • 用户投稿
    100
  • 解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题

    解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题

    本文旨在解决JavaFX应用在Eclipse中正常运行,但导出为可运行JAR包后,因FXMLLoader无法找到FXML资源文件而抛出IllegalStateException: Location is not set异常的问题。核心解决方案是调整FXMLLoader.setLocation()方法…

    2026年9月25日 • 用户投稿
    100
  • iQOO Z10 Turbo+ 续航登顶各大榜单 8000mAh 电池绝了

    iQOO Z10 Turbo+ 续航登顶各大榜单 8000mAh 电池绝了iQOO Z10 Turbo+ 续航登顶各大榜单 8000mAh 电池绝了iQOO Z10 Turbo+ 续航登顶各大榜单 8000mAh 电池绝了iQOO Z10 Turbo+ 续航登顶各大榜单 8000mAh 电池绝了

    8 月 4 日,iqoo 产品团队公布了 iqoo z10 turbo+ 的续航测试成绩,该机凭借出色的续航表现强势登顶多家主流媒体榜单,引发广泛关注。搭载 8000mah 超大容量蓝海电池与联发科最新旗舰芯片天玑 9400+,iqoo z10 turbo+ 成为兼顾高性能与持久续航用户的理想之选。…

    2026年9月25日 • 用户投稿
    100
  • 如何结合其他工具使用Debian Sniffer

    如何结合其他工具使用Debian Sniffer如何结合其他工具使用Debian Sniffer如何结合其他工具使用Debian Sniffer如何结合其他工具使用Debian Sniffer

    图片: 虽然找不到关于“如何结合其他工具使用Debian Sniffer”的直接信息,但以下是一些关于Debian及其网络工具的实用信息,希望能帮助您更好地理解如何使用Debian进行网络分析: Debian是一个强大的Linux发行版,拥有丰富的网络工具。要有效地结合其他工具使用Debian Sn…

    2026年9月25日 • 用户投稿
    100
  • 快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型

    快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型

    快手 kwaipilot 团队近日推出了两款全新的 kat 系列 agentic coding 大模型,标志着在代码智能领域的重大突破:开源的 32b 参数模型 kat-dev-32b 以及闭源的旗舰级模型 kat-coder。 据悉,这两款模型在代码理解与生成方面分别展现了卓越的轻量化性能与顶级的…

    2026年9月25日 • 用户投稿
    200
  • 抖音店铺怎么举报商家和客服?抖音投诉商家入口

    抖音已成为众多消费者购物的首选之地。在享受便捷购物体验的消费者在抖音店铺购物过程中也时常会遇到一些问题,如商家发货慢、商品质量差、客服态度恶劣等。在这种情况下,如何有效举报商家和客服,维护自身权益成为了消费者关注的焦点。本文将为您详细解析抖音店铺举报流程,助您轻松维权。 一、抖音店铺举报的重要性 抖…

    2026年9月25日
    200
  • 洛可可输出全解析:三阶爆发与聚怪技巧详解

    在激烈的战斗中,洛可可宛如一位身姿翩跹却杀机暗藏的舞台主宰,她的输出节奏犹如一场精心策划的三幕戏剧。想要彻底释放她那毁天灭地的力量?只需遵循以下三大核心步骤,便能完美演绎属于她的高光时刻! 第一幕:想象力!能量的根基 洛可可一切力量的源头,皆源自“想象力”的积累——这股珍贵的能量是触发后续华丽连招的…

    2026年9月25日
    400
  • Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程

    Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程

    首先调整Chrome最小字体设置至12像素以上,其次可通过页面缩放或开发者工具临时修改字体大小以提升可读性。 如果您发现Chrome浏览器中某些网页的字体过小导致阅读困难,这可能是因为浏览器或网页本身设置了较小的最小字体限制。以下是解决此问题的步骤: 本文运行环境:Dell XPS 13,Windo…

    2026年9月25日 • 用户投稿
    100
  • sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法

    sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法

    答案:通过设置和插件可恢复Sublime Text旧版体验。1. 右键顶部或用命令面板启用菜单栏和工具栏;2. 安装PackageResourceViewer修改主题或切换为Default主题还原标签页样式;3. 在用户设置中添加参数关闭动画、显示边框、使用小图标以还原侧边栏;4. 设置&#8221…

    2026年9月25日 • 用户投稿
    000
  • Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​

    Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​

    使用deepseek满血版配合scribble diffusion pro可高效进行专业图像创作。1. scribble diffusion pro是基于草图生成高质量图像的插件,适合已有初步构图的创作者;2. deepseek提供更强文本理解与细节控制能力,提升风格、光影等描述精准度;3. 高效使…

    2026年9月25日 • 用户投稿
    200
  • 快手如何设置动态封面_快手动态封面设置的步骤与技巧

    快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧

    1、可通过长按主页背景选择相册视频设置动态封面;2、需在通用设置中开启动态封面功能;3、也可从视频分享页点击动态壁纸快速应用。 如果您在快手个人主页希望展示更具吸引力的动态封面,以替代静态图片,可以通过特定步骤进行设置。该功能允许用户使用短视频作为主页背景,提升个性化展示效果。 本文运行环境:iPh…

    2026年9月25日 • 用户投稿
    200
  • win10电脑qq远程桌面连接不上的解决方法

    win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法

    腾讯出品的qq是一款广泛使用的聊天工具,几乎每个人都拥有自己的qq账号,在使用过程中还可以实现远程控制的功能。不过,部分用户反映在尝试远程连接时遇到了障碍,那么win10系统下qq远程连接失败该怎么办呢?接下来就让我们一起探讨win10电脑qq远程桌面连接失败的解决办法。 QQ远程连接无法使用怎么办…

    2026年9月25日 • 用户投稿
    000
  • Java多态中成员变量是否具有动态绑定特性

    成员变量不具有动态绑定特性,其访问基于引用变量的声明类型而非实际对象类型。例如,当父类和子类存在同名成员变量时,通过父类引用访问该变量将获取父类中的值,即使实际对象是子类实例。这体现了静态绑定,即在编译期确定访问的变量。相比之下,实例方法支持动态绑定(后期绑定),在运行时根据对象的实际类型决定调用哪…

    2026年9月25日
    100
  • 摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”

    摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”

    2025 年 9 月 26 日,上交所官方网站信息显示,摩尔线程智能科技(北京)股份有限公司(简称“摩尔线程”)的科创板 ipo 项目已顺利通过上市委审议,保荐机构为中信证券股份有限公司。 从正式提交申请获上交所受理,到成功过会,摩尔线程历时不足三个月,创下科创板企业上市审核速度的新纪录。本次IPO…

    2026年9月25日 • 用户投稿
    100
  • 1688阿里巴巴官方网站 1688阿里巴巴新品快订入口

    1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口

    1688阿里巴巴官方网站新品快订入口为https://ding.1688.com,该平台涵盖服饰、配饰、家居日用及包装物料等丰富商品类目,支持先采后付、48小时发货、混批进货等高效交易模式,并提供新人优惠、实时成交数据展示、销售趋势提示及全网截图比价等采购优化服务。 1688阿里巴巴官方网站新品快订…

    2026年9月25日 • 用户投稿
    000
  • 2025 上半年中国蓝牙耳机市场份额出炉:小米第一

    2025 上半年中国蓝牙耳机市场份额出炉:小米第一2025 上半年中国蓝牙耳机市场份额出炉:小米第一2025 上半年中国蓝牙耳机市场份额出炉:小米第一2025 上半年中国蓝牙耳机市场份额出炉:小米第一

    根据 idc 最新发布的数据,2025 年上半年中国蓝牙耳机市场出货量约为 5998 万台,同比增长 7.5%。其中,小米以 16.5% 的市场份额位居榜首。值得注意的是,耳夹式耳机在 2025 年上半年的市场规模与增速首次超越耳挂式产品,实现出货量 651 万台,同比增长高达 41.0%。 小米耳…

    2026年9月25日 • 用户投稿
    200
  • Java 中处理货币数据的正确方式

    Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式

    在 Java 应用程序中,尤其是在处理财务数据时,选择正确的数据类型至关重要。货币数据通常以特定的格式呈现,例如包含货币符号(如美元符号 $)和千位分隔符(如逗号 ,)。直接将这些数据映射到 DTO 类时,我们需要仔细考虑数据类型的选择,以避免潜在的精度损失和计算错误。 货币数据类型选择考量 常见的…

    2026年9月25日 • 用户投稿
    000
  • 夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置

    夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置

    关闭夸克浏览器“允许打开第三方应用”权限可解决跳转问题。依次进入设置→浏览器偏好→关闭该选项;同时在系统设置中将淘宝等App的链接打开方式设为“不打开”或“询问”;搜索时长按结果选择“在浏览器中打开”;使用无痕浏览模式避免唤端行为。 如果您在使用夸克浏览器时,点击链接后自动跳转到淘宝等第三方App,…

    2026年9月25日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信