You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用无序列表结合Flex实现首图占50%的画廊网格布局

解决方案

要实现你要的画廊布局,核心是把<ul>作为Flex容器来控制所有<li>的排列,而不是给单个<li>设置Flex属性。你的当前代码错误地将非首项<li>设为Flex容器,导致布局逻辑混乱。

正确的CSS代码

/* 重置列表默认样式,设置为Flex容器并允许换行 */
ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
}

/* 首项占50%宽度,禁止压缩 */
li:first-child {
  width: 50%;
  flex-shrink: 0;
}

/* 其余项各占25%宽度,自动填充剩余空间 */
li:not(:first-child) {
  width: 25%;
}

/* 图片自适应容器宽度 */
li img {
  width: 100%;
  height: auto;
  display: block;
}

布局逻辑说明

  • 父容器<ul>设置display: flex和flex-wrap: wrap,让所有子元素<li>在一行放不下时自动换行。
  • 首项<li>占50%宽度,flex-shrink: 0确保它不会被其他元素挤压变形。
  • 剩余4个<li>各占25%宽度:首项占满左半部分后,右半部分(50%宽度)刚好能容纳两个25%的元素,自动换行后就形成了右侧2×2的网格。
  • 图片设置width: 100%保证自适应容器,避免溢出或留白。

内容的提问来源于stack exchange,提问作者pab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:50:27